<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      NetCore Swagger 配置一個控制器兩個或多個分組(二)

      /// <summary>
      /// 系統(tǒng)模塊枚舉注釋
      /// </summary>
      public class GroupInfoAttribute : Attribute
      {
          public string Title { get; set; }
          public string Version { get; set; }
          public string Description { get; set; }
      }
      
      /// <summary>
      /// 系統(tǒng)分組枚舉值
      /// </summary>
      public enum ApiGroupNames
      {
          [GroupInfo(Title = "無分組", Description = "無分組接口", Version = "v1")]
          NoGroup,
          [GroupInfo(Title = "A", Description = "A相關接口", Version = "v1")]
          A,
          [GroupInfo(Title = "B", Description = "B相關接口", Version = "v1")]
          B,
          [GroupInfo(Title = "C", Description = "C相關接口", Version = "v1")]
          C,
      }
      
      /// <summary>
      /// 系統(tǒng)分組特性
      /// </summary>
      public class ApiGroupAttribute : Attribute
      {
          public ApiGroupAttribute(params ApiGroupNames[] name)
          {
              GroupName = name;
          }
      
          public ApiGroupNames[] GroupName { get; set; }
      }
      

      //配置swagger時

      //遍歷ApiGroupNames所有枚舉值生成接口文檔,Skip(1)是因為Enum第一個FieldInfo是內置的一個Int值
      typeof(ApiGroupNames).GetFields().Skip(1).ToList().ForEach(f =>
      {
      //獲取枚舉值上的特性
      var info = f.GetCustomAttributes(typeof(GroupInfoAttribute), false).OfType().FirstOrDefault();
      m.SwaggerDoc(f.Name, new OpenApiInfo
      {
      Title = info?.Title,
      Version = info?.Version,
      Description = info?.Description
      });
      });

      //判斷接口歸于哪個分組                    
      m.DocInclusionPredicate((docName, apiDescription) =>
      {
      //反射拿到值 
      var actionlist = apiDescription.ActionDescriptor.EndpointMetadata.Where(x => x is ApiGroupAttribute);
      if (docName == "NoGroup")
      {
      if (actionlist.Count() == 0)
      //當分組為NoGroup時,只要沒加特性的都屬于這個組
      return string.IsNullOrEmpty(apiDescription.GroupName);
      }
      else
      {
      if (actionlist.Count() > 0)
      {
      //判斷是否包含這個分組 
      var actionfilter = actionlist.FirstOrDefault() as ApiGroupAttribute;
      if (actionfilter != null)
      return actionfilter.GroupName.Count(x => x.ToString() == docName) > 0;
      else
      return false;
      }
      }
      return false;
      });

      //給控制器增加自定義屬性,在A分組和B分組都有接口信息
      [ApiGroup(ApiGroupNames.A, ApiGroupNames.B)]

      參考網(wǎng)址:https://blog.51cto.com/u_15127592/2803541

      posted @ 2022-02-16 15:12  blsegirl  閱讀(423)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 99国产欧美另类久久久精品| 亚洲一区成人av在线| 青青草一区在线观看视频| 精品国产自在久久现线拍| 成人又黄又爽又色的视频| 久久久天堂国产精品女人 | 国产免费毛卡片| 狠狠躁夜夜躁人人爽天天古典| 亚洲精品一区二区天堂| 在线涩涩免费观看国产精品| 亚洲黄色片一区二区三区| 国产精品中文字幕二区| 久久国产精品免费一区| 无遮挡午夜男女xx00动态| 在线日韩日本国产亚洲| 久久中文骚妇内射| 日韩中文字幕亚洲精品| 波多野结衣久久一区二区| 资源在线观看视频一区二区| 日本福利一区二区精品| 999福利激情视频| 成年午夜免费韩国做受视频| 国产无套内射普通话对白| 野花社区www视频日本| 无码免费大香伊蕉在人线国产| 蜜臀av色欲a片无人一区| 国产中文成人精品久久久| 中国老太婆video| 欧美激情一区二区久久久| 动漫AV纯肉无码AV电影网| 国产视频一区二区三区四区视频| 国产女高清在线看免费观看| 无码精品人妻一区二区三区中| 亚洲国产成人无码电影| 亚洲综合日韩av在线| 亚洲男人天堂2021| 高级艳妇交换俱乐部小说| 免费无码黄网站在线观看| 免费超爽大片黄| 日韩深夜视频在线观看| 欧美日韩国产亚洲沙发|