C# .NET 获取枚举值的自定义属性
2023-09-14 09:07:45 时间
一、定义一个类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Reflection; namespace XXX.XXX.Utils { /// <summary> /// 备注特性 /// </summary> public class DescAttribute : Attribute { private string m_desc; public DescAttribute(string desc) { this.m_desc = desc; } /// <summary> /// 备注 /// </summary> public string Desc { get { return m_desc; } set { m_desc = value; } } /// <summary> /// 获取枚举的备注信息 /// </summary> /// <param name="val">枚举值</param> /// <returns></returns> public static string GetEnumDesc(Enum val) { Type type = val.GetType(); FieldInfo fd = type.GetField(val.ToString()); if (fd == null) return string.Empty; object[] attrs = fd.GetCustomAttributes(typeof(DescAttribute), false); string name = string.Empty; foreach (DescAttribute attr in attrs) { name = attr.Desc; } return name; } } /// <summary> /// 枚举扩展类 /// </summary> public static class EnumExtension { /// <summary> /// 获取枚举的备注信息 /// </summary> /// <param name="em"></param> /// <returns></returns> public static string GetDesc(this Enum em) { Type type = em.GetType(); FieldInfo fd = type.GetField(em.ToString()); if (fd == null) return string.Empty; object[] attrs = fd.GetCustomAttributes(typeof(DescAttribute), false); string name = string.Empty; foreach (DescAttribute attr in attrs) { name = attr.Desc; } return name; } } }
二、定义一个枚举,并引用如上命名空间
public enum EnumCalculationTag { [Desc("This is description")] A }
三、获取注解(需引用“一”中的命名空间)
EnumCalculationTag.A.GetDesc()
相关文章
- 用.NET开发的磁力搜索引擎——btbook.net「建议收藏」
- C# 定时执行方法
- net掌握Linux环境下的.NET开发(linuxdot)
- 利用Oracle.Net实现数据库互联(oracle.net)
- C#/.NET CTS和CLS:公共类型系统和公共语言规范
- Redis从入门到精通:.NET实现指南(redis.net书籍)
- 原理揭秘.NET 运用Redis图灵缓存原理(.net缓存redis)
- Net与Oracle构建连接的数据价值(.net 链oracle)
- NET与Oracle结合出现新的可能(.net oracle)
- 数据库NET开发者操作Oracle数据库的全攻略(net操作oracle)
- NET备份MySQL提升数据安全性(.net 备份mysql)
- 用Net和MySQL实现软件开发编程(.net mysql编程)
- Net平台下MySQL数据库操作实践(.net mysql操作)
- Redis无法安装NET组件(redis装不上net)
- C#(.NET)数据访问连接、查询、插入等操作的封装类
- asp.net(c#)判断远程图片是否存在
- asp.net(c#)获取内容第一张图片地址的函数
- C#中几个未知的VisualStudio编码技巧分享
- ASP.net(c#)生成条形码code39条码生成方法
- asp.net(c#)动态修改webservice的地址和端口(动态修改配置文件)
- C#ConfigHelper辅助类介绍
- 解析C#自定义控件的制作与使用实例的详解
- C#无边框窗体之窗体移动实现代码
- C#对象与XMl文件之间的相互转换
- C#类中属性与成员变量的使用小结
- c#动态改变webservice的url访问地址
- C#获取上个月第一天和最后一天日期的方法
- c#+JQurey实现获取radio和checkbox的值
- C#中Html.RenderPartial与Html.RenderAction的区别分析
- C#IDEVS2005中的HostingProcess(vshost.exe)作用介绍