Blame view

netcore/src/Infrastructure/NCC/JsonSerialization/Extensions/JsonSerializationServiceCollectionExtensions.cs 1.46 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
  using NCC.Dependency;
  using NCC.JsonSerialization;
  using Microsoft.AspNetCore.Mvc;
  using System;
  
  namespace Microsoft.Extensions.DependencyInjection
  {
      /// <summary>
      /// Json 序列化服务拓展类
      /// </summary>
      [SuppressSniffer]
      public static class JsonSerializationServiceCollectionExtensions
      {
          /// <summary>
          /// 配置 Json 序列化提供器
          /// </summary>
          /// <typeparam name="TJsonSerializerProvider"></typeparam>
          /// <param name="services"></param>
          /// <returns></returns>
          public static IServiceCollection AddJsonSerialization<TJsonSerializerProvider>(this IServiceCollection services)
              where TJsonSerializerProvider : class, IJsonSerializerProvider
          {
              services.AddSingleton<IJsonSerializerProvider, TJsonSerializerProvider>();
              return services;
          }
  
          /// <summary>
          /// 配置 JsonOptions 序列化选项
          /// <para>主要给非 Web 环境使用</para>
          /// </summary>
          /// <param name="services"></param>
          /// <param name="configure"></param>
          /// <returns></returns>
          public static IServiceCollection AddJsonOptions(this IServiceCollection services, Action<JsonOptions> configure)
          {
              // 手动添加配置
              services.Configure<JsonOptions>(options =>
              {
                  configure?.Invoke(options);
              });
  
              return services;
          }
      }
  }