首先自定义一个RemarkAttribute

[html] view plain copy

  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Reflection; 
  5. using System.Text; 
  6. using System.Threading.Tasks; 
  7. namespace Zemp.Process.Util.EnumAttribute 
  8. public class RemarkAttribute : Attribute 
  9. private string _remark; 
  10. public RemarkAttribute(string _remark) 
  11. this._remark = _remark; 
  12. public string Remark 
  13. get { return _remark; } 
  14. set { _remark = value; } 
  15. public static string GetEnumRemark(System.Enum _enum) 
  16. Type type = _enum.GetType(); 
  17. FieldInfo fd = type.GetField(_enum.ToString()); 
  18. if (fd == null) return string.Empty; 
  19. object[] attrs = fd.GetCustomAttributes(typeof(RemarkAttribute), false); 
  20. string name = string.Empty; 
  21. foreach (RemarkAttribute attr in attrs) 
  22. name = attr.Remark; 
  23. return name; 
  24. }

然后在Enum里面的使用

[html] view plain copy

  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Text; 
  5. using System.Threading.Tasks; 
  6. using Zemp.Process.Util.EnumAttribute; 
  7. namespace Zemt.Process.WebServiceAPI.Enum 
  8. public enum WorkflowTypeEnum 
  9. /// <summary>
  10. /// 草稿 
  11. /// </summary>
  12. [Remark("草稿")] 
  13. Draft = -1, 
  14. /// <summary>
  15. /// 流转结束 
  16. /// </summary>
  17. [Remark("流转结束")] 
  18. Completed = 0, 
  19. /// <summary>
  20. /// 用户取消 
  21. /// </summary>
  22. [Remark("用户取消")] 
  23. UserCancel = 1, 
  24. /// <summary>
  25. /// 管理员取消 
  26. /// </summary>
  27. [Remark("管理员取消")] 
  28. AdminCancel = 2, 
  29. /// <summary>
  30. /// 流转中  
  31. /// </summary>
  32. [Remark("流转中")] 
  33. Running = 3, 
  34. /// <summary>
  35. /// 流转中(曾被拒绝过) 
  36. /// </summary>
  37. [Remark("流转中(曾被拒绝过)")] 
  38. EverDeclined = 4, 
  39. /// <summary>
  40. /// 未流转 
  41. /// </summary>
  42. [Remark("未流转")] 
  43. None = 5
  44. }

使用:得到Remark里面的值

RemarkAttribute.GetEnumRemark(WorkflowTypeEnum.None);

int 转 enum

(WorkflowTypeEnum)5

enum转int

convert.into32(WorkflowTypeEnum.None)

http://blog.csdn.net/qq873113580/article/details/48464481

EnumRemarkAttribute,获取属性值的更多相关文章

  1. storm源码之巧用java反射反序列化clojure的defrecord获取属性值

    [原创]storm源码之巧用java反射反序列化clojure的defrecord获取属性值 [原创]storm源码之巧用java反射反序列化clojure的defrecord获取属性值 storm源 ...

  2. C# 反射获取属性值、名称、类型以及集合的属性值、类型名称

    实体类 class Product { public string Id { get; set; } public string Name { get; set; } public List<P ...

  3. java 反射机制--根据属性名获取属性值

    1.考虑安全访问范围内的属性,没有权限访问到的属性不读取 /** * 根据属性名获取属性值 * * @param fieldName * @param object * @return */ priv ...

  4. HtmlAgilityPack中使用xpath获取属性值

    HtmlAgilityPack介绍 HtmlAgilityPack是一个专门用来解析Html的库,它可以使用xml的方式来解析html. 有人说了,html本身不就是xml?是的,html就是xml, ...

  5. JSON 获取属性值的方法

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript(Standard ECMA-262 ...

  6. C#反射设置属性值和获取属性值

    /// /// 获取类中的属性值 /// /// /// /// public string GetModelValue(string FieldName, object obj) { try { T ...

  7. js中attr 与find 获取属性值,

    一.attr的用法 1. attr(属性名)        //获取属性的值(取得第一个匹配元素的属性值.通过这个方法可以方便地从第一个匹配元素中获取一个属性的值.如果元素没有相应属性,则返回 und ...

  8. [转] C#反射设置属性值和获取属性值

    /// /// 获取类中的属性值 /// /// /// /// public string GetModelValue(string FieldName, object obj) { try { T ...

  9. 转:JSON 获取属性值的方法

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript(Standard ECMA-262 ...

随机推荐

  1. js回车动态添加表格,右键动态删除表格行

    <script type="text/javascript" language="javascript">//屏蔽浏览器右键function sto ...

  2. PIC XC8 EEPROM操作

    要做一个报警功能的东东,要求可以通过遥控来改变遥控内容.由于对系统的稳定性要求很高,所以用了看门狗. 可是看门狗复位会引起所有寄存器重置,恢复到默认状态.遥控要改变的内容也被复位了,所以只能借助EEP ...

  3. 字符串处理——(第一次作业Draw输入命令处理部分升级)

    #include<iostream> #include<sstream> //使用istringstream必须包含的头文件 #include<string> #i ...

  4. HTTP请求方法

    HTTP请求方法 根据HTTP标准,HTTP请求可以使用多种请求方法. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP1.1新增了五种请求方法:OPTIONS, ...

  5. "****" is not translated in zh, zh_CN.的解决方法

    最近在开发一个app,要用到静默安装等一些小技术,但是引发了问题如下: 在Android SDK Tool r19之后, Export的时候遇到xxx is not translated in yyy ...

  6. 上传8m以上文件,报错误 101 (net::ERR_CONNECTION_RESET):连接已重置

    经过多方查找,原来是因为我使用了nginx反响代理的原因.nginx在做反向代理时,默认的可以上传的附件大小是1M,可以通过设置nginx.conf中的client_max_body_size进行更改 ...

  7. TIOBE 2015年7月编程语言排行榜:C++的复兴

    TIOBE 2015年7月编程语言排行榜:C++的复兴 发表于2015-07-13 17:03| 16086次阅读| 来源CSDN| 128 条评论| 作者钱曙光 编程语言排行榜TIOBEC++ 摘要 ...

  8. 【转】我是如何在SQLServer中处理每天四亿三千万记录的

    原文转自:http://blog.jobbole.com/80395/ 首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文 ...

  9. stm32f10x .icf文件 可以看懂

    /*###ICF### Section handled by ICF editor, don't touch! ****//*-Editor annotation file-*//* IcfEdito ...

  10. CentOS 6.5 升级 GCC 4.9.3

    1. GUN官网下载源代码安装包: gcc-4.9.3.tar.gz 2. 解压安装包,并进入解压后的文件夹: tar -zxvf gcc-4.9.3.tar.gz 3. 使用压缩包中的工具下载依赖: ...