Beispiel #1
0
        public static EnumExtensions.EnumItem <T> GetEnumItem <T>(this Enum e) where T : Attribute
        {
            EnumExtensions.EnumItem <T> enumItem = new EnumExtensions.EnumItem <T>();
            FieldInfo field = e.GetType().GetField(e.ToString());

            enumItem.IntValue  = (int)Enum.Parse(e.GetType(), field.Name);
            enumItem.Name      = field.Name;
            enumItem.Attribute = (T[])field.GetCustomAttributes(typeof(T), false);
            return(enumItem);
        }
Beispiel #2
0
        public static List <EnumExtensions.EnumItem> GetEnumListItem(this Type enumType)
        {
            List <EnumExtensions.EnumItem> enumItemList = new List <EnumExtensions.EnumItem>();

            foreach (FieldInfo fieldInfo in ((IEnumerable <FieldInfo>)enumType.GetFields()).Where <FieldInfo>((Func <FieldInfo, bool>)(fieldInfo_0 => fieldInfo_0.Name != "value__")).ToArray <FieldInfo>())
            {
                EnumExtensions.EnumItem enumItem = new EnumExtensions.EnumItem();
                enumItem.Name = fieldInfo.Name;
                DescriptionAttribute[] customAttributes = (DescriptionAttribute[])fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
                if (customAttributes != null && customAttributes.Length > 0)
                {
                    enumItem.Description = customAttributes[0].Description;
                }
                enumItem.IntValue = (int)Enum.Parse(enumType, fieldInfo.Name);
                enumItemList.Add(enumItem);
            }
            return(enumItemList);
        }