C#--获取枚举的Description属性

public enum EnumTest
    {
        [Description("Attribute")]
        Attribute1 = 1,
        [Description("Attribute")]
        Attribute2 = 2,
        [Description("Measure")]
        Measure1 = 3,
        [Description("Measure")]
        Measure2 = 4
    }

根据enum的name获取description

/// <summary>
        /// get enum description by name
        /// </summary>
        /// <typeparam name="T">enum type</typeparam>
        /// <param name="enumItemName">the enum name</param>
        /// <returns></returns>
        public static string GetDescriptionByName<T>(this T enumItemName)
        {
            FieldInfo fi = enumItemName.GetType().GetField(enumItemName.ToString());

            DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(
                typeof(DescriptionAttribute), false);

            if (attributes != null && attributes.Length > 0)
            {
                return attributes[0].Description;
            }
            else
            {
                return enumItemName.ToString();
            }
        }

转自http://www.cnblogs.com/bianlan/archive/2013/05/13/3075243.html

posted @ 2014-04-02 16:44  task117  阅读(1497)  评论(0)    收藏  举报