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