установить Enums используя отражение - PullRequest
5 голосов
/ 10 августа 2011

Как установить Enums используя отражение,

мой класс имеет перечисление:

public enum LevelEnum
    {
        NONE,
        CRF,
        SRS,
        HLD,
        CDD,
        CRS
    };

и во время выполнения я хочу установить это перечисление на CDD, например.

Как я могу это сделать?

Ответы [ 3 ]

4 голосов
/ 10 августа 2011

Попробуйте использовать класс Enum

LevelEnum s = (LevelEnum)Enum.Parse(typeof(LevelEnum), "CDD");
3 голосов
/ 10 августа 2011
public class MyObject
{
    public LevelEnum MyValue {get;set,};
}


var obj = new MyObject();
obj.GetType().GetProperty("MyValue").SetValue(LevelEnum.CDD, null);
0 голосов
/ 10 августа 2011
value = (LevelEnum)Enum.Parse(typeof(LevelEnum),"CDD");

Таким образом, вы просто анализируете строку, соответствующую значению перечисления, которое вы хотите присвоить переменной. Это произойдет, если строка не является определенным членом перечисления. Вы можете проверить это с помощью Enum.IsDefined(typeof(LevelEnum),input);

...