C# 给枚举类型增加一个备注特性

  /// <summary>
    /// 备注特性
    /// </summary>
    public class RemarkAttribute : Attribute
    {
        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }

        public RemarkAttribute(string remark)
        {
            this.Remark = remark;
        }
    }
    /// <summary>
    /// 枚举扩展类
    /// </summary>
    public static class EnumExtension
    {
        /// <summary>
        /// 获取枚举的备注信息
        /// </summary>
        /// <param name="em"></param>
        /// <returns></returns>
        public static string GetRemark(this Enum value)
        {
            FieldInfo fi = value.GetType().GetField(value.ToString());
            if (fi == null)
            {
                return value.ToString();
            }
            object[] attributes = fi.GetCustomAttributes(typeof(RemarkAttribute), false);
            if (attributes.Length > 0)
            {
                return ((RemarkAttribute)attributes[0]).Remark;
            }
            else
            {
                return value.ToString();
            }
        }

        public static string GetEnumDescription(this Enum value)
        {
            FieldInfo fi = value.GetType().GetField(value.ToString());
            DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
            if (attributes.Length > 0)
            {
                return attributes[0].Description;
            }
            else
            {
                return value.ToString();
            }
        }
    }
            var aaa = UserType.Type1.GetRemark();
            var aab = UserType.Type2.GetEnumDescription();


本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏跟着阿笨一起玩NET

把DataTable 转换成Json格式,适用于EasyUI 绑定DataGrid

本文转载:http://www.cnblogs.com/liang--liang/archive/2013/02/05/2893030.html

1042
来自专栏技术之路

Gridview行上下移动自己做的一个小例子(第一种方法)

今天没有什么事做,就写了一个GridView行上下移动的小例子。 方法有好多种,我先写第一种。 没有什么技术含量 思路: 把要上移或下移的id 与它的临近行的i...

1868
来自专栏流柯技术学院

HttpClient在HTTP协议接口测试中的使用

TTP协议的接口测试中,使用到最多的就是GET请求与POST请求,其中POST请求有FORM参数提交请求与RAW请求,下面我将结合HttpClient来实现一下...

2442
来自专栏c#开发者

遍列schema代码

Code class XmlSchemaTraverseExample {     static void Main()     {         ...

3495
来自专栏c#开发者

C# : row-clickable GridView and get and set gridview rows using JavaScript

Complete C# code: ---------------- using System; using System.ComponentModel; ...

3386
来自专栏魂祭心

原 数据字典+匿名委托模拟switch/c

2829
来自专栏vue

.net里面的字典Dictionary

812
来自专栏魂祭心

原 WCF学习之旅----基础篇之NET

2888
来自专栏c#开发者

向datagrid中加横向 纵向的合计 (在datatable中实现,datatable间倒数据)

如果实现?? protected System.Web.UI.WebControls.DataGrid DataGrid1; /// <summary>...

44212
来自专栏.net core新时代

List,DataTable实现行转列的通用方案

  最近在做报表统计方面的需求,涉及到行转列报表。根据以往经验使用SQL可以比较容易完成,这次决定挑战一下直接通过代码方式完成行转列。期间遇到几个问题和用到的新...

2207

扫码关注云+社区