enum GBEnum
{
[EnumDescription("火警")]
Enum_Fire,
[EnumDescription("预警")]
Enum_Warning,
[EnumDescription("故障")]
Enum_Fault,
[EnumDescription("其他")]
Enum_Other
}
[AttributeUsage(AttributeTargets.Field, AllowMultiple = false)]
class EnumDescriptionAttribute : Attribute{
private string description;
public string Description { get { return description; } }
public EnumDescriptionAttribute(string description)
: base()
{
this.description = description;
}
}
/// <summary>
/// 获取枚举字符串
/// </summary>
public static class EnumHelper
{
public static string GetDescription(Enum value)
{
if (value == null)
{
throw new ArgumentException("value");
}
string description = value.ToString();
var fieldInfo = value.GetType().GetField(description);
var attributes =
(EnumDescriptionAttribute[])fieldInfo.GetCustomAttributes(typeof(EnumDescriptionAttribute), false);
if (attributes != null && attributes.Length > 0)
{
description = attributes[0].Description;
}
return description;
}
}