using System.Reflection;
using NSExt.Attributes;
namespace NSExt.Extensions;
///
/// EnumExtensions
///
public static class EnumExtensions
{
///
/// 获取枚举的description属性
///
/// 枚举对象
/// description属性
public static string Desc(this Enum e)
{
var t = e.GetType();
var fi = t.GetField(Enum.GetName(t, e)!);
var descAttr = fi!.GetCustomAttribute(false);
if (descAttr is null) {
return Enum.GetName(t, e);
}
var str = descAttr.Description;
var locAttr = fi!.GetCustomAttribute(false);
return locAttr is null ? str : locAttr.ResourceClass.GetProperty(str)?.GetValue(default) as string ?? str;
}
}