.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":"超级管理员"},{......},{......}]

posted @   喜东东三三  阅读(102)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示