获取枚举类型的描述description
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace candel
{
class Program
{
static void Main(string args)
{
int x = (int)OrderType.WaitConfirm;
string str = Util.GetEnumDesc(typeof(OrderType), x);
Console.WriteLine(str);
Order o = new Order() { Id = 1, Type = (int)OrderType.Complete };
string str2 = (typeof(OrderType)).GetEnumDesc(o.Type);
Console.WriteLine(str2);
Console.Read();
}
}
public class Order
{
public int Id { set; get; }
public int Type { set; get; }
}
public enum OrderType
{
/// <summary>
/// 等待用户付款
/// </summary>
[ Description("等待用户付款")]
WaitPay = 0,
/// <summary>
/// 等待商家发货
/// </summary>
Description("等待商家发货")
WaitSend = 1,
/// <summary>
/// 等待用户确认收货
/// </summary>
[ Description("等待用户确认收货")]
WaitConfirm = 2,
/// <summary>
/// 订单完成
/// </summary>
[Description("订单完成")]
Complete = 3
}
public static class Util
{
/// <summary>
/// 根据值得到中文备注
/// </summary>
/// <param name="e"></param>
/// <param name="value"></param>
/// <returns></returns>
public static String GetEnumDesc(this Type e, int? value)
{
FieldInfo fields = e.GetFields();
for (int i = 1, count = fields.Length; i < count; i++)
{
if ((int)System.Enum.Parse(e, fieldsi.Name) == value)
{
DescriptionAttribute EnumAttributes = (DescriptionAttribute)fieldsi.
GetCustomAttributes(typeof(DescriptionAttribute), false);
if (EnumAttributes.Length > 0)
{
return EnumAttributes0.Description;
}
}
}
return "";
}
}
}