博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
根据枚举获取枚举的Description特性值
阅读量:4964 次
发布时间:2019-06-12

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

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

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
status = new List
(); 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         ///  4         /// 此项对应枚举的int值,即 0,1  .... 5         ///  6         public int ID { get; set; } 7  8         ///  9         /// 此项对应枚举中特性的具体描述信息10         /// 11         public string StatusName { get; set; }12     }
View Code

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

转载于:https://www.cnblogs.com/xiesong/p/7130711.html

你可能感兴趣的文章
mysql备份与恢复
查看>>
混沌分形之迭代函数系统(IFS)
查看>>
边框圆角Css
查看>>
使用Busybox制作根文件系统
查看>>
jpg图片在IE6、IE7和IE8下不显示解决办法
查看>>
delphi之模糊找图
查看>>
Javascript模块化编程的写法
查看>>
oracle 使用job定时自动重置sequence
查看>>
在项目中加入其他样式
查看>>
OMAPL138学习----DSPLINK DEMO解析之SCALE
查看>>
restframework CBV试图的4种方式
查看>>
大图居中,以1920px为例
查看>>
[C陷阱和缺陷] 第7章 可移植性缺陷
查看>>
linux中configure文件默认执行结果所在位置
查看>>
Windows向Linux上传文件夹
查看>>
20180104-高级特性-Slice
查看>>
6个SQL Server 2005性能优化工具介绍
查看>>
nginx启动、关闭命令、重启nginx报错open() "/var/run/nginx/nginx.pid" failed
查看>>
BZOJ 3097 Hash Killer I
查看>>
UINavigationController的视图层理关系
查看>>