根据枚举获取枚举的Description特性值
首先定义一个枚举:两个值:已确认、未确认。
public enum ConfirmStatusEnum
{
[Description("未确认")]
unconfirmed = ,
[Description("已确认")]
confirmed =
}
转换枚举的方法:
private void InitConfirmStatus()
{
int values = ;
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 != )
{
description = (DescriptionAttribute)atts[];//获取特性的描述信息; description就是特性中的描述信息
//给实体复制
statusEntity.StatusName = description.Description;
status.Add(statusEntity);
}
} //这个地方是我实际情况的处理,供参考
ConfirmStatus = status;
SelectConfirmStatus = status.FirstOrDefault();
}
要转成的实体(根据实际情况,此操作可选):
public class ConfirmStatusEntity
{
/// <summary>
/// 此项对应枚举的int值,即 0,1 ....
/// </summary>
public int ID { get; set; } /// <summary>
/// 此项对应枚举中特性的具体描述信息
/// </summary>
public string StatusName { get; set; }
}
里面有些是我实际情况使用的实体,供参考。
根据枚举获取枚举的Description特性值的更多相关文章
- c#枚举 获取枚举键值对、描述等
using System; using System.Collections.Generic; using System.Collections.Specialized; using System.C ...
- 【转载】[C#]枚举操作(从枚举中获取Description,根据Description获取枚举,将枚举转换为ArrayList)工具类
关键代码: using System; using System.Collections; using System.Collections.Generic; using System.Compone ...
- 获取枚举值上的Description特性说明
/// <summary> /// 获取枚举值上的Description特性说明 /// </summary> /// <typeparam name="T&q ...
- 获取枚举Description的Name
/// <summary> /// 获取枚举Description的Name /// </summary> /// <param name="enumName& ...
- 获取枚举Name,Value,Description两种方法
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...
- C# 获取枚举的描述Description
方法类: public static class EnumExtensions { #region Enum /// <summary> /// 获取枚举变量值的 Description ...
- .NET获取枚举DescriptionAttribute描述信息性能改进的多种方法
一. DescriptionAttribute的普通使用方式 1.1 使用示例 DescriptionAttribute特性可以用到很多地方,比较常见的就是枚举,通过获取枚举上定义的描述信息在UI上显 ...
- c#获取枚举
在实际开发项目中,我们定义了一个枚举,往往我们需要在下拉框或其它地方展示枚举.为了加深印象,也为了帮到有需要的人,我写了一个DEMO. 第一步,我们定义一个枚举: /// <summary> ...
- C#获取枚举描述代码
public class MusterEnum { /// 获取枚举的描述信息 /// </summary> /// <param name="e">传入枚 ...
随机推荐
- leetcode804
int uniqueMorseRepresentations(vector<string>& words) { map<char, string> st; st.ins ...
- PHP 环境安装
官方 http://www.php.net/ http://php.net/manual/zh/install.php http://php.net/manual/zh/index.php 下载也就是 ...
- For input String:"" 异常记录
开发中遇到 For input String:"" 这个异常,一般为在将字符串转换为数字类型时, 出现转换的异常,常见的比如输入的字符串为空串
- Screen - BOM对象
Screen 对象 Screen 对象包含有关客户端显示屏幕的信息. 注释:没有应用于 screen 对象的公开标准,不过所有浏览器都支持该对象. Screen 对象属性 属性 描述 availHei ...
- laravel的模型关联之(一对多的反向)
一对多的反向 一对多的反向就相当于,一个用户有多篇文章,但是在显示文章模型的时候你又想显示这个用户的用户名,但是你只有用户id, 这时候就用到了一对多的反向,你用用户(User)模型里面定义了一对多来 ...
- Codeforces 1120C Compress String(DP)
题意:给你一个字符串,有2种消除方式:1:消除一个单独的字母,代价为a.2:s[j]到s[k]是s[1]到s[j - 1]的子串,那么s[j]到s[k]可以消除,代价为b,问最小的代价. 思路:官方题 ...
- 599. Minimum Index Sum of Two Lists两个餐厅列表的索引和最小
[抄题]: Suppose Andy and Doris want to choose a restaurant for dinner, and they both have a list of fa ...
- Django rest_framework----认证,权限,频率组件
认证 from rest_framework.authentication import BaseAuthentication from rest_framework.exceptions impor ...
- ubuntu扩展屏幕
1.了解设置的名称 直接运行xrandr(不带任何参数)就可以显示出当前的显示设备及设备的模式. xdj@xdj-Presario-CQ42-Notebook-PC:~$ xrandr Screen ...
- Struts中ActionContext和ServletActionContext的比较
一.ActionContext在Struts2开发中除了将请求参数自动设置到Action的字段中,往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息,甚至需要直 ...