FlexJobApi.Core/FlexJobApi.Core.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
FlexJobApi.Core/Utils/EnumUtils/EnumModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
FlexJobApi.Core/Utils/EnumUtils/EnumUtils.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
FlexJobApi.Core/Utils/SwaggerUtils/EnumSchemaFilter.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
FlexJobApi.Core/settings.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
FlexJobApi.Core/FlexJobApi.Core.xml
@@ -2188,6 +2188,36 @@ <param name="dbContextLocator"></param> <returns></returns> </member> <member name="P:FlexJobApi.Core.EnumModel.Name"> <summary> 名称 </summary> </member> <member name="P:FlexJobApi.Core.EnumModel.Description"> <summary> 描述 </summary> </member> <member name="P:FlexJobApi.Core.EnumModel.Items"> <summary> 枚举项 </summary> </member> <member name="P:FlexJobApi.Core.EnumModelItem.Name"> <summary> 名称 </summary> </member> <member name="P:FlexJobApi.Core.EnumModelItem.Value"> <summary> 值 </summary> </member> <member name="P:FlexJobApi.Core.EnumModelItem.Description"> <summary> 描述 </summary> </member> <member name="T:FlexJobApi.Core.EventBusServiceComponent"> <summary> 事件总线 FlexJobApi.Core/Utils/EnumUtils/EnumModel.cs
New file @@ -0,0 +1,49 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core { public class EnumModel { public EnumModel() { Items = []; } /// <summary> /// 名称 /// </summary> public string Name { get; set; } /// <summary> /// 描述 /// </summary> public string Description { get; set; } /// <summary> /// 枚举项 /// </summary> public List<EnumModelItem> Items { get; set; } } public class EnumModelItem { /// <summary> /// 名称 /// </summary> public string Name { get; set; } /// <summary> /// 值 /// </summary> public int Value { get; set; } /// <summary> /// 描述 /// </summary> public string Description { get; set; } } } FlexJobApi.Core/Utils/EnumUtils/EnumUtils.cs
New file @@ -0,0 +1,32 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core { public static class EnumUtils { public static async Task<EnumModel> GetModel(this Type type) { var model = new EnumModel(); var xmlDoc = await XmlDocUtils.GetXmlDocAsync(); var xmlDocMember = await XmlDocUtils.GetXmlDocMemberAsync(type, xmlDoc); model.Name = type.Name; model.Description = xmlDocMember?.Summary; foreach (var enumValue in Enum.GetValues(type)) { var item = new EnumModelItem(); item.Name = enumValue.ToString(); item.Value = (int)enumValue; var enumMember = type.GetMember(enumValue.ToString()).FirstOrDefault(); var enumXmlDocMember = await XmlDocUtils.GetXmlDocMemberAsync(enumMember, xmlDoc); item.Description = enumXmlDocMember?.Summary; model.Items.Add(item); } return model; } } } FlexJobApi.Core/Utils/SwaggerUtils/EnumSchemaFilter.cs
@@ -18,23 +18,8 @@ if (context.Type.IsEnum) { // 枚举类型的描述(来自枚举本身的注释) schema.Description ??= GetEnumDescription(context.Type); schema.Description = EnumUtils.GetModel(context.Type).Result.ToJson(); } } // 获取枚举类型的注释 private string GetEnumDescription(Type enumType) { var xmlDoc = XmlDocUtils.GetXmlDocAsync().Result; var member = XmlDocUtils.GetXmlDocMemberAsync(enumType, xmlDoc).Result; var description = member?.Summary ?? ""; foreach (var enumValue in Enum.GetValues(enumType)) { var enumMember = enumType.GetMember(enumValue.ToString()).First(); var enumXmlDocMember = XmlDocUtils.GetXmlDocMemberAsync(enumMember, xmlDoc).Result; description += $"{enumValue}-{enumXmlDocMember?.Summary} "; } return description; } } } FlexJobApi.Core/settings.json
@@ -11,7 +11,8 @@ "Name": "孙鹏飞" } } ] ], "EnumToNumber": true }, "CorsAccessorSettings": { "WithExposedHeaders": [