This commit is contained in:
CortexCore
2025-01-09 17:49:38 +08:00
parent 0287c1a2fc
commit 01e7e4e35e
5 changed files with 159 additions and 16 deletions

View File

@@ -23,33 +23,35 @@ namespace BITKit
public static string GetDisplayName(this object self)
{
{
if (self.GetType().GetCustomAttribute<DisplayNameAttribute>() is { } displayNameAttribute)
var type = self is Type t? t: self.GetType();
if (type.GetCustomAttribute<DisplayNameAttribute>() is { } displayNameAttribute)
{
return displayNameAttribute.DisplayName;
}
#if NET5_0_OR_GREATER
if (self.GetType().GetCustomAttribute<DisplayAttribute>() is { } displayAttribute)
if (type.GetCustomAttribute<DisplayAttribute>() is { } displayAttribute)
{
return displayAttribute.Name;
}
#endif
}
{
if (self is Enum)
{
var field = self.GetType().GetField(self.ToString()!);
if (self is not Enum) return self.ToString();
var field = self.GetType().GetField(self.ToString()!);
if(field is null) return self.ToString();
if (field.GetCustomAttribute<DisplayNameAttribute>() is DisplayNameAttribute displayNameAttribute)
{
return displayNameAttribute.DisplayName;
}
#if NET5_0_OR_GREATER
if (field.GetCustomAttribute<DisplayAttribute>() is DisplayAttribute displayAttribute)
{
return displayAttribute.Name;
}
#endif
if (field.GetCustomAttribute<DisplayNameAttribute>() is { } displayNameAttribute)
{
return displayNameAttribute.DisplayName;
}
#if NET5_0_OR_GREATER
if (field.GetCustomAttribute<DisplayAttribute>() is { } displayAttribute)
{
return displayAttribute.Name;
}
#endif
}
return self.ToString();
}