49 lines
1.6 KiB
C#
49 lines
1.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Reflection;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
namespace LiveForum.Code.Utility
|
|
{
|
|
public static class EunmHelp
|
|
{
|
|
|
|
public static string FetchDescription(this Enum value)
|
|
{
|
|
FieldInfo fi = value.GetType().GetField(value.ToString());
|
|
DescriptionAttribute[] attributes =
|
|
(DescriptionAttribute[])fi.GetCustomAttributes(
|
|
typeof(DescriptionAttribute), false);
|
|
return (attributes.Length > 0) ? attributes[0].Description : value.ToString();
|
|
}
|
|
/// <summary>
|
|
/// 获取对应的枚举描述
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <returns></returns>
|
|
public static string GetEnumDescription<T>(int a) where T : Enum
|
|
{
|
|
|
|
var EnumDescription = "";
|
|
Type t = typeof(T);
|
|
Array arrays = Enum.GetValues(t);
|
|
for (int i = 0; i < arrays.LongLength; i++)
|
|
{
|
|
//获取value
|
|
T test = (T)arrays.GetValue(i);
|
|
FieldInfo fieldInfo = test.GetType().GetField(test.ToString());
|
|
object[] attribArray = fieldInfo.GetCustomAttributes(false);
|
|
DescriptionAttribute attrib = (DescriptionAttribute)attribArray[0];
|
|
if ((int)(object)test ==a)
|
|
{
|
|
EnumDescription = attrib.Description;
|
|
}
|
|
}
|
|
return EnumDescription;
|
|
}
|
|
}
|
|
}
|