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); }
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); }