live-forum/server/webapi/LiveForum/LiveForum.Code/Utility/EunmHelp.cs
2026-03-24 11:27:37 +08:00

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;
}
}
}