diff --git a/src/backend/NetAdmin/NetAdmin.Infrastructure/Enums/EnumExtensions.cs b/src/backend/NetAdmin/NetAdmin.Infrastructure/Enums/EnumExtensions.cs
new file mode 100644
index 00000000..4ccda04e
--- /dev/null
+++ b/src/backend/NetAdmin/NetAdmin.Infrastructure/Enums/EnumExtensions.cs
@@ -0,0 +1,16 @@
+namespace NetAdmin.Infrastructure.Enums;
+
+///
+/// 枚举扩展方法
+///
+public static class EnumExtensions
+{
+ ///
+ /// 通过类泛型类型获取特性
+ ///
+ public static T Attr(this Enum me)
+ where T : Attribute
+ {
+ return me.GetType().GetMember(me.ToString())[0].GetCustomAttributes(false).FirstOrDefault();
+ }
+}
\ No newline at end of file
diff --git a/src/backend/NetAdmin/NetAdmin.Infrastructure/Extensions/CountryCodesExtensions.cs b/src/backend/NetAdmin/NetAdmin.Infrastructure/Extensions/CountryCodesExtensions.cs
index 81fcf97c..3140a6c1 100644
--- a/src/backend/NetAdmin/NetAdmin.Infrastructure/Extensions/CountryCodesExtensions.cs
+++ b/src/backend/NetAdmin/NetAdmin.Infrastructure/Extensions/CountryCodesExtensions.cs
@@ -1,6 +1,4 @@
-using Microsoft.OpenApi.Extensions;
-
-namespace NetAdmin.Infrastructure.Extensions;
+namespace NetAdmin.Infrastructure.Extensions;
///
/// CountryCodes 扩展方法
@@ -12,6 +10,6 @@ public static class CountryCodesExtensions
///
public static int GetCallingCode(this CountryCodes me)
{
- return me.GetAttributeOfType().CallingCode;
+ return me.Attr().CallingCode;
}
}
\ No newline at end of file
diff --git a/src/backend/NetAdmin/NetAdmin.Infrastructure/Utils/PhoneNumberHelper.cs b/src/backend/NetAdmin/NetAdmin.Infrastructure/Utils/PhoneNumberHelper.cs
index b0493487..b6fc9fee 100644
--- a/src/backend/NetAdmin/NetAdmin.Infrastructure/Utils/PhoneNumberHelper.cs
+++ b/src/backend/NetAdmin/NetAdmin.Infrastructure/Utils/PhoneNumberHelper.cs
@@ -1,5 +1,3 @@
-using Microsoft.OpenApi.Extensions;
-
namespace NetAdmin.Infrastructure.Utils;
///
@@ -15,13 +13,13 @@ public static class PhoneNumberHelper
{
_countryList = Enum.GetValues()
.SelectMany(x => {
- var attribute = x.GetAttributeOfType();
+ var attribute = x.Attr();
// ReSharper disable once UseCollectionExpression
return (attribute.CallingSubCode ?? new[] { string.Empty }).Select(y => (attribute.CallingCode + y, x));
})
.OrderBy(x => x.Item1)
- .ThenByDescending(x => x.x.GetAttributeOfType().IsPreferred)
+ .ThenByDescending(x => x.x.Attr().IsPreferred)
.DistinctBy(x => x.Item1)
.OrderByDescending(x => x.Item1.Length);
}
diff --git a/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Modules/Sys/Session/IUserModule.cs b/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Modules/Sys/Session/IUserModule.cs
index 16a7a99e..47b72bb4 100644
--- a/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Modules/Sys/Session/IUserModule.cs
+++ b/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Modules/Sys/Session/IUserModule.cs
@@ -1,6 +1,5 @@
using NetAdmin.Domain.Dto.Sys.UserProfile;
-// ReSharper disable once CheckNamespace
namespace NetAdmin.SysComponent.Application.Modules.Sys;
public partial interface IUserModule
diff --git a/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Services/Sys/ConstantService.cs b/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Services/Sys/ConstantService.cs
index b7d8a15f..75d09a95 100644
--- a/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Services/Sys/ConstantService.cs
+++ b/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Services/Sys/ConstantService.cs
@@ -1,4 +1,3 @@
-using Microsoft.OpenApi.Extensions;
using NetAdmin.Domain.Attributes;
namespace NetAdmin.SysComponent.Application.Services.Sys;
@@ -32,11 +31,11 @@ public sealed class ConstantService : ServiceBase, IConstantSe
static string[] GetDicValue(Enum y)
{
var ret = new[] { Convert.ToInt64(y, CultureInfo.InvariantCulture).ToString(CultureInfo.InvariantCulture), y.ResDesc() };
- if (y is CountryCodes) {
- return [..ret, y.GetAttributeOfType().CallingCode.ToInvString()];
+ if (y is CountryCodes z) {
+ return [..ret, z.GetCallingCode().ToInvString()];
}
- var indicate = y.GetAttributeOfType()?.Indicate.ToLowerInvariant();
+ var indicate = y.Attr()?.Indicate.ToLowerInvariant();
return indicate.NullOrEmpty() ? ret : [..ret, indicate];
}