Я пытаюсь разобрать строку обратно в свойство, допускающее значение NULL, типа MyEnum.
public MyEnum? MyEnumProperty { get; set; }
Я получаю сообщение об ошибке в строке:
Enum result = Enum.Parse(t, "One") as Enum;
// Type provided must be an Enum. Parameter name: enumType
У меня есть образец теста консоли ниже. Код работает, если я удаляю nullable для свойства MyEntity.MyEnumProperty
.
Как заставить код работать, не зная перечисления typeOf, кроме как с помощью отражения?
static void Main(string[] args)
{
MyEntity e = new MyEntity();
Type type = e.GetType();
PropertyInfo myEnumPropertyInfo = type.GetProperty("MyEnumProperty");
Type t = myEnumPropertyInfo.PropertyType;
Enum result = Enum.Parse(t, "One") as Enum;
Console.WriteLine("result != null : {0}", result != null);
Console.ReadKey();
}
public class MyEntity
{
public MyEnum? MyEnumProperty { get; set; }
}
public enum MyEnum
{
One,
Two
}
}