.Net Core获取枚举名称,值,描述集合
//创建枚举类 public enum Role { /// <summary> /// 超级管理员 /// </summary> [Description("超级管理员")] Admin = 0, /// <summary> /// 租借用户 /// </summary> [Description("租借用户")] Lease = 1, /// <summary> /// 普通购买用户 /// </summary> [Description("普通购买用户")] Money = 2, }
//创建返回类型集合 public class EnumLists { /// <summary> /// 名称 /// </summary> public string name { get; set; } /// <summary> /// 值 /// </summary> public int value { get; set; } /// <summary> /// 描述 /// </summary> public string Des { get; set; } }
//创建一个泛型的方法,用来规定只能接受枚举类型 public static List<EnumLists> Gets<T>() where T : Enum { var type = typeof(T); var list = new List<EnumLists>(); var fields = type.GetFields(BindingFlags.Static | BindingFlags.Public) ?? new FieldInfo[] { }; foreach (var field in fields) { var info = new EnumLists(); //取到:Admin info.name = field.Name; //取到:0 info.value = (int)field.GetValue(null); var atts = field.GetCustomAttributes(typeof(DescriptionAttribute), false); if (atts != null && atts.Length > 0) { //取到:超级管理员 var att = ((DescriptionAttribute[])atts)[0]; info.Des = att.Description; } list.Add(info); } return list; }
//调用 Gets<Role>()
最终就可以获取到一个包含枚举值,名称,描述的枚举集合.[{"name":"Admin","value":0,"Des":"超级管理员"},{......},{......}]