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