var enumlist = Assembly.LoadFile(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + @"\\" + TgNetJZConsts.LocalizationSourceName + ".Core.dll").GetTypes().
Where(x => x.IsSubclassOf(typeof(Enum)) && (x.CustomAttributes.Count() != 0 && x.CustomAttributes.FirstOrDefault().AttributeType.Name == nameof(MyEnumAttribute)));
этот проект get все enumtypes
foreach (Type enumType in enumlist)
{
var list = EnumExtensions.GetEnumToDisplayNameAndValueList<>();
}
public static List<EnumListDto> GetEnumToDisplayNameAndValueList<T>() where T : struct, IConvertible
{
var enumDictionary = Enum.GetValues(typeof(T))
.Cast<T>()
.Select(x => new EnumListDto
{
name = x.GetType().GetMember(x.ToString()).FirstOrDefault().GetCustomAttribute<DisplayAttribute>().GetName(),
value = Convert.ToInt32(Enum.Parse(typeof(T), x.ToString()))
})
.ToList();
return enumDictionary;
}
Как изменить код, чтобы получить отображаемое имя и значение каждого перечисления, теперь с ошибкой. Тип предоставленного должен быть Enum.Параметр в System.RuntimeType.GetEnumValues ()