Как получить описание поля enum в asp.net?

Пользователь

от miguel_ritchie , в категории: Другие , 6 месяцев назад

Как получить описание поля enum в asp.net?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от chloe.keebler , 6 месяцев назад

@miguel_ritchie 

Для получения описания поля enum в ASP.NET можно использовать атрибуты.

  1. Создайте enum:
1
2
3
4
5
6
7
8
public enum MyEnum
{
    [Description("Описание 1")]
    Value1,

    [Description("Описание 2")]
    Value2
}


  1. Создайте метод расширения, который будет возвращать описание значения enum:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
public static class EnumExtensions
{
    public static string GetDescription(this TEnum enumerationValue)
    {
        Type type = enumerationValue.GetType();
        MemberInfo[] memberInfo = type.GetMember(enumerationValue.ToString());
        if (memberInfo != null && memberInfo.Length > 0)
        {
            object[] attrs = memberInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
            if (attrs != null && attrs.Length > 0)
            {
                return ((DescriptionAttribute)attrs[0]).Description;
            }
        }
        return enumerationValue.ToString();
    }
}


  1. Используйте метод расширения для получения описания:
1
2
3
MyEnum myValue = MyEnum.Value1;
string description = myValue.GetDescription();
Console.WriteLine(description); // выводит "Описание 1"


Здесь мы использовали атрибут Description для описания значений enum. При необходимости вы можете использовать другие атрибуты или создать свой собственный.