zoukankan      html  css  js  c++  java
  • C#获取枚举的Description描述信息

      1 定义枚举:  

    public enum Pepole        

    {            

      [Description("男孩")]            

      boy=1,            

      [Description("女孩")]            

      girl=2,           

       man=3        

    }   

    2 泛型方法:获取枚举的说明信息

     public static Dictionary<string, string> GetEnumDescription<T>()        

    {            

      Dictionary<string, string> dic = new Dictionary<string, string>();            

      FieldInfo[] fields =typeof(T).GetFields();            

      foreach (FieldInfo field in fields)            

      {                

        if (field.FieldType.IsEnum)                

        {                    

          object[] attr=field.GetCustomAttributes(typeof(DescriptionAttribute), false);                    

          string description = attr.Length == 0 ? field.Name : ((DescriptionAttribute)attr[0]).Description;                    

          dic.Add(field.Name, description);                

        }            

      }           

        return dic;        

    }  

     /// <summary>        

    /// 获取对应的枚举描述(中文)        

    /// </summary>        

    public static List<KeyValuePair<string, string>> GetEnumDescriptionList<T>()        

    {            

      List<KeyValuePair<string, string>> result = new List<KeyValuePair<string, string>>();            

      FieldInfo[] fields = typeof(T).GetFields();            

      foreach (FieldInfo field in fields)            

      {                

        if (field.FieldType.IsEnum)                

        {                    

          object[] attr = field.GetCustomAttributes(typeof(DescriptionAttribute), false);                    

          string description = attr.Length == 0 ? field.Name : ((DescriptionAttribute)attr[0]).Description;                    

          result.Add(new KeyValuePair<string,string>(field.Name, description));                

        }            

      }            

      return result;   

    }

     3 使用方法:      

    Dictionary<string, string> dic =  GetEnumDescription<People>();

  • 相关阅读:
    【嵌入式硬件Esp32】Ubuntu18.04 更换阿里云软件源
    【嵌入式硬件Esp32】Ubuntu 1804下ESP32交叉编译环境搭建
    【嵌入式硬件Esp32】Eclipse c++切换回英文方法
    Ant Design使用问题记录
    C#调用python脚本
    C# 6新特性简单总结
    ASP.NET动态网站制作(30)-- WEBService
    ASP.NET动态网站制作(29)-- 正则
    ASP.NET动态网站制作(28)-- 三层框架(2)
    ASP.NET动态网站制作(27)-- 三层框架(1)
  • 原文地址:https://www.cnblogs.com/stevemin/p/3539310.html
Copyright © 2011-2022 走看看