У меня есть класс со свойствами, такими как:
[TypeConverter(typeof(SomeNameEnumValueConvert))]
public Example ExampleName { get; set; }
В моем Enum TypeConverter я пытаюсь получить имя Enum из определенного целого числа, потому что источник читает из таблицы, состоящей из строк.
В таблице он хранится как, например, «33» (не имя), например от
public enum Example
{
Off = 1,
On = 33,
Whatever = 7
}
Тогда вот часть моего кода конвертера:
public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)
{
var enumValue = Convert.ToInt32(value);
return (context.PropertyDescriptor.PropertyType) enumValue
}
Однако здесь указывается, что контекст - это переменная, , а не тип . Итак, я пробовал различные способы заставить это работать, но параллельно с этим я опубликую это здесь, возможно, это ускоряет попытки. Я пробовал приведение к Enum, приведение к (enum) (объект), приведение через GetType, приведение через Assembly для получения определенного типа, но, похоже, ничего из этого не работает. Поэтому как конвертировать в базовый тип системы.