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

  • 相关阅读:
    Redis的高级应用——数据安全
    [转]C#多线程和线程池
    详解从面向接口编程到依赖注入
    Java Servlet 配置
    Java Servlet 3.0 新特性
    [转]C#中的委托和事件
    iReport5.6.0使用说明
    Visual Studio 2015 官方下载及密钥
    Java Swing 托盘闪烁Demo实例
    Win7 利用批处理文件结束进程
  • 原文地址:https://www.cnblogs.com/stevemin/p/3539310.html
Copyright © 2011-2022 走看看