获取枚举类型的描述description

获取枚举类型的描述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 "";
    }
}

}

上一篇:使用nginx在android手机上搭建rtmp服务器并测试


下一篇:cisco 设备的IOS要支持WEB管理功能