首先定义一个扩展属性的类
/// <summary>
/// 自定义类的信息
/// </summary>
[AttributeUsage(AttributeTargets.All, AllowMultiple = true)]
public class ExtendsAttribute:Attribute
{
/// <summary>
/// 描述性信息
/// </summary>
public String Description { get; set; }
/// <summary>
/// 静态的值
/// </summary>
public int Key { get; set; }
public ExtendsAttribute(string description)
{
Description = description;
}
public ExtendsAttribute(int key,string description)
{
Key = key;
Description = description;
}
}
然后在枚举类中加入属性类
public enum VirtualOrderStatus
{
/// <summary>
/// 待付款
/// </summary>
[ExtendsAttribute(0, "待付款")]
WaitPayment = 0,
/// <summary>
/// 已付款
/// </summary>
[ExtendsAttribute(1, "已付款")]
Paid = 1,
/// <summary>
/// 已发货
/// </summary>
[ExtendsAttribute(2, "已发货")]
SendGoods = 2,
/// <summary>
/// 已收货
/// </summary>
[ExtendsAttribute(3, "已收货")]
Deliveries = 3,
/// <summary>
/// 已完成
/// </summary>
[ExtendsAttribute(4, "已完成")]
Finished = 4,
/// <summary>
///已取消
/// </summary>
[ExtendsAttribute(5, "已取消")]
Canceled = 5
}
获取枚举的中文值
/// <summary>
/// 获取虚拟订单状态
/// </summary>
/// <returns></returns>
public static Dictionary<int, string> GetVirtualOrderStatus()
{
Dictionary<int, string> state = new Dictionary<int, string>();
Type orderStatus = typeof(Common.Enum.VirtualOrderStatus);
string[] name = orderStatus.GetEnumNames();
for (int i = 0; i < name.Length; i++)
{
System.Reflection.FieldInfo field = orderStatus.GetField(name[i]);
Common.ExtendsAttribute extendAtrr = field.GetCustomAttributes(typeof(Common.ExtendsAttribute), false)[0] as Common.ExtendsAttribute;
state.Add(extendAtrr.Key, extendAtrr.Description);
}
if (state.Count > 0)
{
return state;
}
return null;
}