博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EnumRemarkAttribute,获取属性值
阅读量:6291 次
发布时间:2019-06-22

本文共 1669 字,大约阅读时间需要 5 分钟。

首先自定义一个RemarkAttribute

[html]

  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.     { 
  10.         private string _remark; 
  11.         public RemarkAttribute(string _remark) 
  12.         { 
  13. this._remark = _remark; 
  14.         } 
  15.         public string Remark 
  16.         { 
  17.             get { return _remark; } 
  18.             set { _remark = value; } 
  19.         } 
  20.         public static string GetEnumRemark(System.Enum _enum) 
  21.         { 
  22.             Type type = _enum.GetType(); 
  23.             FieldInfo fd = type.GetField(_enum.ToString()); 
  24.             if (fd == null) return string.Empty; 
  25.             object[] attrs = fd.GetCustomAttributes(typeof(RemarkAttribute), false); 
  26.             string name = string.Empty; 
  27.             foreach (RemarkAttribute attr in attrs) 
  28.             { 
  29. name = attr.Remark; 
  30.             } 
  31.             return name; 
  32.         } 
  33.     } 

然后在Enum里面的使用

[html]

  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.     { 
  10.          /// <summary>
  11.         /// 草稿 
  12.         /// </summary>
  13.         [Remark("草稿")] 
  14. Draft = -1, 
  15.         /// <summary>
  16.         /// 流转结束 
  17.         /// </summary>
  18.         [Remark("流转结束")] 
  19. Completed = 0, 
  20.         /// <summary>
  21.         /// 用户取消 
  22.         /// </summary>
  23.         [Remark("用户取消")] 
  24. UserCancel = 1, 
  25.         /// <summary>
  26.         /// 管理员取消 
  27.         /// </summary>
  28.         [Remark("管理员取消")] 
  29. AdminCancel = 2, 
  30.         /// <summary>
  31.         /// 流转中  
  32.         /// </summary>
  33.         [Remark("流转中")] 
  34. Running = 3, 
  35.         /// <summary>
  36.         /// 流转中(曾被拒绝过) 
  37.         /// </summary>
  38.         [Remark("流转中(曾被拒绝过)")] 
  39. EverDeclined = 4, 
  40.         /// <summary>
  41.         /// 未流转 
  42.         /// </summary>
  43.         [Remark("未流转")] 
  44. None = 5
  45.     } 

使用:得到Remark里面的值

RemarkAttribute.GetEnumRemark(WorkflowTypeEnum.None);

int 转 enum

(WorkflowTypeEnum)5

enum转int

convert.into32(WorkflowTypeEnum.None)

 

 

转载地址:http://uncta.baihongyu.com/

你可能感兴趣的文章
DELL EqualLogic PS存储数据恢复全过程整理
查看>>
《Node.js入门经典》一2.3 安装模块
查看>>
《Java 开发从入门到精通》—— 2.5 技术解惑
查看>>
Linux 性能诊断 perf使用指南
查看>>
实操分享:看看小白我如何第一次搭建阿里云windows服务器(Tomcat+Mysql)
查看>>
Sphinx 配置文件说明
查看>>
数据结构实践——顺序表应用
查看>>
python2.7 之centos7 安装 pip, Scrapy
查看>>
机智云开源框架初始化顺序
查看>>
Spark修炼之道(进阶篇)——Spark入门到精通:第五节 Spark编程模型(二)
查看>>
一线架构师实践指南:云时代下双活零切换的七大关键点
查看>>
ART世界探险(19) - 优化编译器的编译流程
查看>>
玩转Edas应用部署
查看>>
music-音符与常用记号
查看>>
sql操作命令
查看>>
zip 数据压缩
查看>>
Python爬虫学习系列教程
查看>>
【数据库优化专题】MySQL视图优化(二)
查看>>
【转载】每个程序员都应该学习使用Python或Ruby
查看>>
PHP高级编程之守护进程,实现优雅重启
查看>>