zoukankan      html  css  js  c++  java
  • EnumRemarkAttribute,获取属性值

    首先自定义一个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.     { 
    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] 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.     { 
    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://blog.csdn.net/qq873113580/article/details/48464481

  • 相关阅读:
    priority of uncertainty
    0523
    6.  Design Partition Guidelines for ThirdParty IP Delivery
    0604
    the categories of constraints
    priority of setup/hold
    SECTION 4: THE TIMEQUEST GUI
    tiny mistake made confusing issues
    fgetcsv 读取csv文件出现问题解决办法
    安卓笔记之配置第一个程序
  • 原文地址:https://www.cnblogs.com/suizhikuo/p/5417517.html
Copyright © 2011-2022 走看看