2017-06-26 5 views
-3

Ich habe diese Enum erhalten:Wie Enum-Wert mit Aufzählungstyp Namen und Aufzählungs Option Name

public enum SomeEnum 
{ 
    None, 
    Half, 
    All 
} 

Wie wäre die folgende Methode Körper, so kann ich den Wert 1 haben Option „None“ und Enum erhalten Name "SomeEnum" gespeichert, wie string:

string enumTypeName = "SomeEnum"; 
string enumPickedOptionName = "None"; 

Methode:

public int GetEnumValue(string enumTypeName, string enumPickedOptionName){} 
+0

Was haben Sie versucht? Was hat nicht funktioniert? – maccettura

+0

Ich bin fast sicher, dass dies am Freitag gefragt wurde ... – BradleyDotNET

Antwort

0

Ich löste das Problem auf diese Weise:

private int GetEnumValue(string assemblyName, string enumTypeName, string enumPickedOptionName) 
{ 
    int result = -1; 

    Assembly assembly = Assembly.Load(assemblyName); 
    Type enumType = assembly.GetTypes().Where(x => x.Name == 
    enumTypeName).FirstOrDefault(); 

    result = (int)Enum.Parse(enumType, enumPickedOptionName, true); 

    return result; 
} 
0

Probieren Sie dies aus der "Namespace" vor dem Aufzählungsnamen:

private int GetEnumValue(string enumTypeName, string enumPickedOptionName) 
    { 
     int result = -1; 
     Type enumType; 

     try 
     { 
      enumType= Type.GetType(enumTypeName); 
      result = (int)Enum.Parse(enumType, enumPickedOptionName,true); 
     } 
     catch (Exception ex) 
     { 

     } 
     finally 
     { 

     } 

     return result; 
    } 

int value = GetEnumValue ("Namespace.SomeEnum", enumPickedOptionName);

+0

Dies hat nicht funktioniert, immer von Type.GetType (enumTypeName) null erhalten; Aber ich löste, sehe meine Antwort. –

+0

Haben Sie den Namespace Ihrer Enumeration im Aufruf der Funktion verwendet? (zB - GetEnumValue ("EnumNameSpace." + enumTypeName, enumPickedOptionName) – codemaker

+0

Ja, habe ich, vielleicht funktioniert das nicht coz die Enum ist in einem anderen Projekt, das im Hauptprojekt referenziert wird, weiß ich nicht –

Verwandte Themen