/// <summary>
/// 根据 Description 的值获取枚举值
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="description"></param>
/// <returns></returns>
public static T GetEnumByDescription<T>(string description) where T : Enum
{
System.Reflection.FieldInfo[] fields = typeof(T).GetFields();
foreach (System.Reflection.FieldInfo field in fields)
{
object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false); //获取描述属性
if (objs.Length > 0 && (objs[0] as DescriptionAttribute).Description == description)
{
return (T)field.GetValue(null);
}
}
return default(T);
}
/// <summary>
/// 根据枚举值获取 Description 的值
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="myEnum"></param>
/// <returns></returns>
public static string EnumToDescription<T>(this T myEnum)
{
Type type = typeof(T);
System.Reflection.FieldInfo info = type.GetField(myEnum.ToString());
DescriptionAttribute descriptionAttribute = info.GetCustomAttributes(typeof(DescriptionAttribute), true)[0] as DescriptionAttribute;
if (descriptionAttribute != null)
return descriptionAttribute.Description;
else
return type.ToString();
}
05-17
1533

01-05
5148

04-29
530

11-14
231
