2016年6月4日 星期六

用描述屬性取得Enum的值

Using
1
2
using System.ComponentModel;
using System.Reflection;


Enum
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
    /// <summary>
    /// 權限類型
    /// </summary>
    public enum AuthType
    {
        [Description("Query")]
        Query,
        [Description("Add")]
        Add,
        [Description("Edit")]
        Edit,
        [Description("Delete")]
        Delete,
        [Description("Export")]
        Export,
        [Description("Import")]
        Import
    }


用描述屬性取得Enum的值
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
/// <summary>
/// 用描述屬性取得Enum的值
/// </summary>
/// <param name="value">Enum</param>
/// <returns></returns>
public string GetEnumDescription(Enum value)
{
    FieldInfo fi = value.GetType().GetField(value.ToString());
    DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
    return (attributes.Length > 0) ? attributes[0].Description : value.ToString();
}

沒有留言 :

張貼留言