Added UI Toolkit Progress

This commit is contained in:
CortexCore
2024-12-13 16:14:20 +08:00
parent 21b4f9091a
commit d502501b27
20 changed files with 660 additions and 134 deletions

View File

@@ -0,0 +1,55 @@
using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Net;
using System.Reflection;
namespace BITKit
{
public static class DisplayAttributeExtensions
{
public static string GetDisplayName(this PropertyInfo self)
{
if (self.GetCustomAttribute<DisplayNameAttribute>() is not { } displayNameAttribute) return self.Name;
var name = displayNameAttribute.DisplayName;
return string.IsNullOrEmpty(name) ? self.Name : name;
}
public static string GetDisplayName(this FieldInfo self)
{
if (self.GetCustomAttribute<DisplayNameAttribute>() is not { } displayNameAttribute) return self.Name;
var name = displayNameAttribute.DisplayName;
return string.IsNullOrEmpty(name) ? self.Name : name;
}
public static string GetDisplayName(this object self)
{
{
if (self.GetType().GetCustomAttribute<DisplayNameAttribute>() is { } displayNameAttribute)
{
return displayNameAttribute.DisplayName;
}
if (self.GetType().GetCustomAttribute<DisplayAttribute>() is { } displayAttribute)
{
return displayAttribute.Name;
}
}
{
if (self is Enum)
{
var field = self.GetType().GetField(self.ToString()!);
if (field.GetCustomAttribute<DisplayNameAttribute>() is DisplayNameAttribute displayNameAttribute)
{
return displayNameAttribute.DisplayName;
}
if (field.GetCustomAttribute<DisplayAttribute>() is DisplayAttribute displayAttribute)
{
return displayAttribute.Name;
}
}
}
return self.ToString();
}
}
}