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>();

  • 相关阅读:
    SQL函数介绍,SDE函数
    [API]Google的语音识别API,支持各种语言
    (C#)Windows Shell 外壳编程系列8 同后缀名不同图标?
    (C#)Windows Shell 外壳编程系列8 同后缀名不同图标?
    获取某路径下,最后被修改的文件
    centos7下关闭防火墙
    linux下常用命令
    unittest断言
    **目录找出最后一次修改的文件(html结果),发送报告到指定qq邮箱
    unittest,requests,assertEqual实战演练
  • 原文地址:https://www.cnblogs.com/stevemin/p/3539310.html
Copyright © 2011-2022 走看看