• 根据枚举获取枚举的Description特性值


    首先定义一个枚举:两个值:已确认、未确认。

    public enum ConfirmStatusEnum
        {
            [Description("未确认")]
            unconfirmed = 1,
            [Description("已确认")]
            confirmed = 2
        }
    View Code

    转换枚举的方法:

    private void InitConfirmStatus()
            {
                int values = 0;
                object[] atts = null;
                ConfirmStatusEntity statusEntity = null;
                DescriptionAttribute description = null;
                List<ConfirmStatusEntity> status = new List<ConfirmStatusEntity>();
    
                Type type = typeof(ConfirmStatusEnum);//取到枚举的Type
                var fields = type.GetFields();//获取枚举中所有字段
                foreach (var item in fields)
                {
                    if (item.FieldType != type)//如果类型不是枚举的则跳过
                    {
                        continue;
                    }
                    statusEntity = new ConfirmStatusEntity();//初始化实体
                    values = (int)item.GetValue(item.Name);//根据名称获取,枚举项的值
                    statusEntity.ID = values;
                    atts = item.GetCustomAttributes(typeof(DescriptionAttribute), false);
                    if (atts != null && atts.Length != 0)
                    {
                        description = (DescriptionAttribute)atts[0];//获取特性的描述信息;  description就是特性中的描述信息
                        //给实体复制
                        statusEntity.StatusName = description.Description;
                        status.Add(statusEntity);
                    }
                }
    
                //这个地方是我实际情况的处理,供参考
                ConfirmStatus = status;
                SelectConfirmStatus = status.FirstOrDefault();
            }
    View Code

    要转成的实体(根据实际情况,此操作可选):

     1 public class ConfirmStatusEntity
     2     {
     3         /// <summary>
     4         /// 此项对应枚举的int值,即 0,1  ....
     5         /// </summary>
     6         public int ID { get; set; }
     7 
     8         /// <summary>
     9         /// 此项对应枚举中特性的具体描述信息
    10         /// </summary>
    11         public string StatusName { get; set; }
    12     }
    View Code

    里面有些是我实际情况使用的实体,供参考。

  • 相关阅读:
    http://home.cnblogs.com/
    关于JS中的JSON
    JQuery中阻止事件冒泡方式及其区别
    jQuery判断元素是否是隐藏的代码
    jquery 绑定动态元素
    Js数组的操作push,pop,shift,unshift等方法详细介绍
    Jquery获取checkbox属性checked为undefined
    javascript时间戳和日期字符串相互转换
    关于jQuery新的事件绑定机制on()的使用技巧
    jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
  • 原文地址:https://www.cnblogs.com/xiesong/p/7130711.html
Copyright © 2020-2023  润新知