как получить enum отображаемое имя и значение по RuntimeType - PullRequest
0 голосов
/ 10 июля 2019
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 ​​()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...