예제 #1
0
        /// <summary>
        /// 返回枚举项的EnumDefineAttribute集合。
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="identiyName"></param>
        /// <returns></returns>
        public static List <EnumDefineAttribute> GetEnumDefineAttributes <T>(string identiyName)
        {
            Type typeFromHandle = typeof(T);

            if (!typeFromHandle.IsEnum)
            {
                throw new System.Exception("GetEnumDefineAttributes<T> 中的 T 必须为枚举类型!");
            }

            List <EnumDefineAttribute> list = new List <EnumDefineAttribute>();
            Array enumArray = System.Enum.GetValues(typeFromHandle);

            for (int i = 0; i < enumArray.Length; i++)
            {
                System.Enum         en = (System.Enum)enumArray.GetValue(i);
                EnumDefineAttribute enumDefineAttribute = GetEnumDefineAttribute(en);
                enumDefineAttribute.Value = GetValue(en);

                if (!string.IsNullOrEmpty(identiyName) && enumDefineAttribute.Identity == identiyName)
                {
                    list.Add(enumDefineAttribute);
                }
            }

            return(list);
        }
예제 #2
0
        /// <summary>
        /// 获得枚举EnumDefineAttribute定义的Description内容。
        /// </summary>
        /// <param name="en">枚举。</param>
        /// <returns></returns>
        public static string GetDescription(this System.Enum en)
        {
            EnumDefineAttribute enumDefineAttribute = GetEnumDefineAttribute(en);

            return(enumDefineAttribute.Description);
        }