Come creare un object enum dal suo tipo e nome del valore?

Ho un tipo (System.Type) di un enum e una stringa contenente il valore di enumerazione da impostare.

Ad esempio:

enum MyEnum { A, B, C }; 

Ho typeof (MyEnum) e “B”.

Come posso creare l’object MyEnum impostato su MyEnum.B?

 MyEnum enumValue = (MyEnum)Enum.Parse(typeof(MyEnum), "B"); 

Hai anche un sovraccarico insensibile alle maiuscole.

Presumo che tu non abbia accesso a MyEnum, solo per typeof (MyEnum):

 void foo(Type t) { Object o = Enum.Parse(t, "B"); } 

Puoi farlo con i generici. Ho creato una class Utility per concludere questo:

 public static class Utils { public static T ParseEnum(string value) { return (T)Enum.Parse(typeof(T), value, true); } 

Quindi invocato come:

 string s = "B"; MyEnum enumValue = Utils.ParseEnum(s);