Blame view

netcore/src/Infrastructure/NCC/App/Extensions/AppApplicationBuilderExtensions.cs 1.75 KB
de2bd2f9   “wangming”   项目初始化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
  using NCC;
  using NCC.Dependency;
  using System;
  
  namespace Microsoft.AspNetCore.Builder
  {
      /// <summary>
      /// 应用中间件拓展类(由框架内部调用)
      /// </summary>
      [SuppressSniffer]
      public static class AppApplicationBuilderExtensions
      {
          /// <summary>
          /// 注入基础中间件(带Swagger
          /// </summary>
          /// <param name="app"></param>
          /// <param name="routePrefix">空字符串将为首页</param>
          /// <param name="configure"></param>
          /// <returns></returns>
          public static IApplicationBuilder UseInject(this IApplicationBuilder app, string routePrefix = default, Action<InjectConfigureOptions> configure = null)
          {
              // 载入中间件配置选项
              var configureOptions = new InjectConfigureOptions();
              configure?.Invoke(configureOptions);
  
              app.UseSpecificationDocuments(routePrefix, configureOptions?.SpecificationDocumentConfigure);
  
              return app;
          }
  
          /// <summary>
          /// 注入基础中间件
          /// </summary>
          /// <param name="app"></param>
          /// <returns></returns>
          public static IApplicationBuilder UseInjectBase(this IApplicationBuilder app)
          {
              return app;
          }
  
          /// <summary>
          /// 添加应用中间件
          /// </summary>
          /// <param name="app">应用构建器</param>
          /// <param name="configure">应用配置</param>
          /// <returns>应用构建器</returns>
          internal static IApplicationBuilder UseApp(this IApplicationBuilder app, Action<IApplicationBuilder> configure = null)
          {
              // 调用自定义服务
              configure?.Invoke(app);
              return app;
          }
      }
  }