using System; using System.Collections.Generic; using System.Reflection; namespace Edu.Common.Plugin { /// /// 枚举帮助类 /// public static class EnumHelper { /// /// 获取枚举列表 /// /// /// public static List EnumToList(Type enumType) { List list = new List(); FieldInfo[] fieldinfos = enumType.GetFields(); foreach (FieldInfo field in fieldinfos) { if (field.FieldType.IsEnum) { Object[] objs = field.GetCustomAttributes(typeof(EnumFieldAttribute), false); Int32.TryParse(field.GetRawConstantValue().ToString(), out int Id); list.Add(new EnumItem() { Id = Id, Name = ((EnumFieldAttribute)objs[0]).Name }); } } return list; } /// /// 获取枚举特性描述值 /// /// /// public static string ToName(this System.Enum obj) { if (obj == null) { return ""; } try { Type type = obj.GetType(); FieldInfo fild = type.GetField(obj.ToString()); if (fild!=null && fild.IsDefined(typeof(EnumFieldAttribute), true)) { EnumFieldAttribute enumField = (EnumFieldAttribute)fild.GetCustomAttribute(typeof(EnumFieldAttribute), true); return enumField.Name; } else { return ""; } } catch { return ""; } } /// /// 获取枚举成员的值(this是扩展方法的标志) /// /// /// public static int ToInt(this System.Enum obj) { return Convert.ToInt32(obj); } } /// /// 枚举特性标签 /// public class EnumFieldAttribute : System.Attribute { /// /// 名称 /// public string Name { get; set; } /// /// 构造函数 /// /// public EnumFieldAttribute(string name) { this.Name = name; } } /// /// 枚举项 /// public class EnumItem { /// /// 编号 /// public int Id { get; set; } /// /// 枚举名称 /// public string Name { get; set; } } }