如何使用DescriptionAttribute实现带空格的enum名称

本文关键字:enum 名称 空格 何使用 DescriptionAttribute 实现 | 更新日期: 2023-09-27 18:04:12

如何使用DescriptionAttibute实现以下enums ?注意枚举值中的空格

public enum PersonGender
    {
        Unknown = 0,
        Male = 1,
        Female = 2,
        Intersex = 3,
        Indeterminate = 3,
        Non Stated = 9,
        Inadequately Described = 9
    }

如何使用DescriptionAttribute实现带空格的enum名称

例如:

是我们的enum:

public enum MyEnum
{
   [Description("Description for Foo")]
   Foo,
   [Description("Description for Bar")]
   Bar
}

和我们获取Attribute的方法。

public static string GetDescription(this Enum value)
{
    Type type = value.GetType();
    string name = Enum.GetName(type, value);
    if (name != null)
    {
        FieldInfo field = type.GetField(name);
        if (field != null)
        {
             DescriptionAttribute attr =
                    Attribute.GetCustomAttribute(field,
                    typeof(DescriptionAttribute)) as DescriptionAttribute;
              if (attr != null)
              {
                   return attr.Description;
              }
        }
    }
    return null;
}

你可以得到description:

  MyEnum x = MyEnum.Foo;
  string description = x.GetDescription();