Skip to content

Commit

Permalink
添加Dapr服务调用操作
Browse files Browse the repository at this point in the history
  • Loading branch information
UtilCore committed Aug 2, 2023
1 parent 501b3fe commit 0c40399
Show file tree
Hide file tree
Showing 228 changed files with 6,599 additions and 1,497 deletions.
63 changes: 59 additions & 4 deletions Util.sln
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Util.Core.Tests", "test\Uti
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{E6328DC1-C8F0-4DC6-941F-C6CAFFF783DF}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "13-Ui", "13-Ui", "{354B3720-D050-487D-A46A-22BCFEE56D43}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "14-Ui", "14-Ui", "{354B3720-D050-487D-A46A-22BCFEE56D43}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "01-Util.Ui", "src\Util.Ui\01-Util.Ui.csproj", "{5F7ACBE4-A1D8-4680-AA86-B87F8494BAC2}"
EndProject
Expand All @@ -31,7 +31,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Util.Ui.NgZorro.Tests", "te
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "01-Core", "01-Core", "{9BFB5DBE-8F64-45A9-BDB2-BAD91D44A4C5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "14-Ui", "14-Ui", "{DE39BB20-AE82-47C3-9141-8CFD4C673217}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "15-Ui", "15-Ui", "{DE39BB20-AE82-47C3-9141-8CFD4C673217}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Util.Ui.Tests", "test\Util.Ui.Tests\Util.Ui.Tests.csproj", "{766CAB38-F064-419F-837B-D6DA8B61AF66}"
EndProject
Expand Down Expand Up @@ -257,13 +257,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "02-Util.Images.Avatar", "sr
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Util.Images.Avatar.Tests.Integration", "test\Util.Images.Avatar.Tests.Integration\Util.Images.Avatar.Tests.Integration.csproj", "{75A31AAB-B7E6-4F13-9B7A-B74216B2EDDE}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "14-Generators", "14-Generators", "{411247A4-4665-4BE6-8E5C-08F6D0BA2213}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "15-Generators", "15-Generators", "{411247A4-4665-4BE6-8E5C-08F6D0BA2213}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "01-Util.Generators", "src\Util.Generators\01-Util.Generators.csproj", "{36990D32-6F41-44A6-BB88-A3F15E12C35B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "02-Util.Generators.Razor", "src\Util.Generators.Razor\02-Util.Generators.Razor.csproj", "{21831A4F-B3C9-40E7-855B-75F9D679FF55}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "15-Generators", "15-Generators", "{F7D4E7CB-468D-4570-8D82-D065F08BE40D}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "16-Generators", "16-Generators", "{F7D4E7CB-468D-4570-8D82-D065F08BE40D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Util.Generators.Tests", "test\Util.Generators.Tests\Util.Generators.Tests.csproj", "{5996F536-14B9-4F95-A18B-716E5F7EE478}"
EndProject
Expand All @@ -285,8 +285,26 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Util.Generators.Razor.Tests
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Util.Events.Tests.Integration", "test\Util.Events.Tests.Integration\Util.Events.Tests.Integration.csproj", "{FB11256C-06C0-4B24-863A-C87D78F8EE2A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "14-Microservices", "14-Microservices", "{547FD391-A56B-47A6-B20C-5FC04FA15C56}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "01-Util.Events.Abstractions", "src\Util.Events.Abstractions\01-Util.Events.Abstractions.csproj", "{6233BF36-9636-43BD-9462-2D31A05EE4ED}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "13-Microservices", "13-Microservices", "{1DEC52C8-6692-4DA7-AE34-B76D728F895A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "01-Util.Microservices", "src\Util.Microservices\01-Util.Microservices.csproj", "{F8417623-6936-43C4-A967-9D6BD002AD16}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "03-Util.Microservices.Dapr", "src\Util.Microservices.Dapr\03-Util.Microservices.Dapr.csproj", "{CAA32331-4A8E-4C16-BC7D-7CA646B393F4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Util.Microservices.Dapr.Tests.Integration", "test\Util.Microservices.Dapr.Tests.Integration\Util.Microservices.Dapr.Tests.Integration.csproj", "{08B1A026-4F8C-4336-B5B8-3189023DFF2B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "02-Util.Microservices.Polly", "src\Util.Microservices.Polly\02-Util.Microservices.Polly.csproj", "{0BCB6FF1-E374-4AED-9888-83C7CFED0E98}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Util.Microservices.Polly.Tests.Integration", "test\Util.Microservices.Polly.Tests.Integration\Util.Microservices.Polly.Tests.Integration.csproj", "{DF1E55A5-7EA8-41B2-BEBA-72544D256069}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "04-Util.Microservices.HealthChecks", "src\Util.Microservices.HealthChecks\04-Util.Microservices.HealthChecks.csproj", "{9C58E50F-0589-4A4E-B94D-2EC0BF02F61F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Util.Microservices.Dapr.WebApiSample", "test\Util.Microservices.Dapr.WebApiSample\Util.Microservices.Dapr.WebApiSample.csproj", "{AE19ED93-AFC4-4F91-93BD-B00D343D3BA0}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -701,6 +719,34 @@ Global
{6233BF36-9636-43BD-9462-2D31A05EE4ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6233BF36-9636-43BD-9462-2D31A05EE4ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6233BF36-9636-43BD-9462-2D31A05EE4ED}.Release|Any CPU.Build.0 = Release|Any CPU
{F8417623-6936-43C4-A967-9D6BD002AD16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F8417623-6936-43C4-A967-9D6BD002AD16}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F8417623-6936-43C4-A967-9D6BD002AD16}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F8417623-6936-43C4-A967-9D6BD002AD16}.Release|Any CPU.Build.0 = Release|Any CPU
{CAA32331-4A8E-4C16-BC7D-7CA646B393F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CAA32331-4A8E-4C16-BC7D-7CA646B393F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CAA32331-4A8E-4C16-BC7D-7CA646B393F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CAA32331-4A8E-4C16-BC7D-7CA646B393F4}.Release|Any CPU.Build.0 = Release|Any CPU
{08B1A026-4F8C-4336-B5B8-3189023DFF2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{08B1A026-4F8C-4336-B5B8-3189023DFF2B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{08B1A026-4F8C-4336-B5B8-3189023DFF2B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{08B1A026-4F8C-4336-B5B8-3189023DFF2B}.Release|Any CPU.Build.0 = Release|Any CPU
{0BCB6FF1-E374-4AED-9888-83C7CFED0E98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0BCB6FF1-E374-4AED-9888-83C7CFED0E98}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0BCB6FF1-E374-4AED-9888-83C7CFED0E98}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0BCB6FF1-E374-4AED-9888-83C7CFED0E98}.Release|Any CPU.Build.0 = Release|Any CPU
{DF1E55A5-7EA8-41B2-BEBA-72544D256069}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DF1E55A5-7EA8-41B2-BEBA-72544D256069}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DF1E55A5-7EA8-41B2-BEBA-72544D256069}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DF1E55A5-7EA8-41B2-BEBA-72544D256069}.Release|Any CPU.Build.0 = Release|Any CPU
{9C58E50F-0589-4A4E-B94D-2EC0BF02F61F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9C58E50F-0589-4A4E-B94D-2EC0BF02F61F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9C58E50F-0589-4A4E-B94D-2EC0BF02F61F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9C58E50F-0589-4A4E-B94D-2EC0BF02F61F}.Release|Any CPU.Build.0 = Release|Any CPU
{AE19ED93-AFC4-4F91-93BD-B00D343D3BA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AE19ED93-AFC4-4F91-93BD-B00D343D3BA0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AE19ED93-AFC4-4F91-93BD-B00D343D3BA0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AE19ED93-AFC4-4F91-93BD-B00D343D3BA0}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -842,7 +888,16 @@ Global
{4FFD1073-9358-418D-BB4D-DB63FE0A11DF} = {445850B7-1A9D-4E9D-8AC1-765F3792DC19}
{5BFF8BA0-EA27-4493-88A5-5BC57286D536} = {F7D4E7CB-468D-4570-8D82-D065F08BE40D}
{FB11256C-06C0-4B24-863A-C87D78F8EE2A} = {3ABD7B4B-37F9-4D49-92D9-384190177286}
{547FD391-A56B-47A6-B20C-5FC04FA15C56} = {E6328DC1-C8F0-4DC6-941F-C6CAFFF783DF}
{6233BF36-9636-43BD-9462-2D31A05EE4ED} = {59F82491-51E3-4A12-B427-9815AEA23D10}
{1DEC52C8-6692-4DA7-AE34-B76D728F895A} = {C01B9930-D67F-41C5-90C9-C87DC53F39CB}
{F8417623-6936-43C4-A967-9D6BD002AD16} = {1DEC52C8-6692-4DA7-AE34-B76D728F895A}
{CAA32331-4A8E-4C16-BC7D-7CA646B393F4} = {1DEC52C8-6692-4DA7-AE34-B76D728F895A}
{08B1A026-4F8C-4336-B5B8-3189023DFF2B} = {547FD391-A56B-47A6-B20C-5FC04FA15C56}
{0BCB6FF1-E374-4AED-9888-83C7CFED0E98} = {1DEC52C8-6692-4DA7-AE34-B76D728F895A}
{DF1E55A5-7EA8-41B2-BEBA-72544D256069} = {547FD391-A56B-47A6-B20C-5FC04FA15C56}
{9C58E50F-0589-4A4E-B94D-2EC0BF02F61F} = {1DEC52C8-6692-4DA7-AE34-B76D728F895A}
{AE19ED93-AFC4-4F91-93BD-B00D343D3BA0} = {547FD391-A56B-47A6-B20C-5FC04FA15C56}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {94347832-A36D-4C42-9C4D-B848BD4F5DA9}
Expand Down
1 change: 1 addition & 0 deletions build/BuildScript.cs
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,7 @@ private void PublishNuGetPackage( ITaskContext context, params ITarget[] dependT
.DoNotFailOnError( ex => { Console.WriteLine( $"Failed to publish {package}.exception: {ex.Message}" ); } )
.ServerUrl( NugetUrl )
.ApiKey( NugetApiKey )
.SkipDuplicate()
.Execute( context );
}
} );
Expand Down
2 changes: 1 addition & 1 deletion build/version.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<PropertyGroup>
<VersionMajor>7</VersionMajor>
<VersionMinor>1</VersionMinor>
<VersionPatch>2</VersionPatch>
<VersionPatch>11</VersionPatch>
<VersionPrefix>$(VersionMajor).$(VersionMinor).$(VersionPatch)</VersionPrefix>
<VersionSuffix></VersionSuffix>
</PropertyGroup>
Expand Down
24 changes: 0 additions & 24 deletions src/Util.Aop.AspectCore/Usings.cs
Original file line number Diff line number Diff line change
@@ -1,30 +1,6 @@
global using System;
global using System.Threading.Tasks;
global using System.Collections.Generic;
global using System.Linq;
global using System.Threading;
global using System.Diagnostics;
global using System.Text;
global using System.IO;
global using System.Reflection;
global using System.ComponentModel;
global using System.Globalization;
global using System.Text.Json;
global using System.Linq.Expressions;
global using System.Text.RegularExpressions;
global using System.ComponentModel.DataAnnotations;
global using System.Runtime.InteropServices;
global using System.Text.Encodings.Web;
global using System.Text.Json.Serialization;
global using System.Text.Unicode;
global using System.Buffers;
global using System.Diagnostics.CodeAnalysis;
global using Microsoft.Extensions.Configuration;
global using Microsoft.Extensions.DependencyInjection;
global using Microsoft.Extensions.Hosting;
global using Microsoft.Extensions.Logging;
global using Microsoft.Extensions.Logging.Abstractions;
global using Microsoft.Extensions.DependencyInjection.Extensions;
global using AspectCore.Configuration;
global using AspectCore.DynamicProxy;
global using AspectCore.DynamicProxy.Parameters;
Expand Down
26 changes: 0 additions & 26 deletions src/Util.Application.EntityFrameworkCore/Usings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,3 @@
global using System.Threading.Tasks;
global using System.Collections.Generic;
global using System.Linq;
global using System.Threading;
global using System.Diagnostics;
global using System.Text;
global using System.IO;
global using System.Reflection;
global using System.ComponentModel;
global using System.Globalization;
global using System.Text.Json;
global using System.Linq.Expressions;
global using System.Text.RegularExpressions;
global using System.ComponentModel.DataAnnotations;
global using System.Runtime.InteropServices;
global using System.Text.Encodings.Web;
global using System.Text.Json.Serialization;
global using System.Text.Unicode;
global using System.Buffers;
global using System.Diagnostics.CodeAnalysis;
global using System.Collections.Concurrent;
global using Microsoft.Extensions.Configuration;
global using Microsoft.Extensions.DependencyInjection;
global using Microsoft.Extensions.Hosting;
global using Microsoft.Extensions.Logging;
global using Microsoft.Extensions.Logging.Abstractions;
global using Microsoft.Extensions.DependencyInjection.Extensions;
global using Microsoft.AspNetCore.Mvc;
global using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
17 changes: 14 additions & 3 deletions src/Util.Application.WebApi/Controllers/WebApiControllerBase.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
using Util.Applications.Filters;
using Util.AspNetCore;
using Util.Helpers;
using Util.Logging;
using Util.Properties;
using Util.Sessions;

namespace Util.Applications.Controllers;
namespace Util.Applications.Controllers;

/// <summary>
/// WebApi控制器基类
Expand Down Expand Up @@ -47,10 +48,20 @@ protected virtual IActionResult Success( dynamic data = null, string message = n
/// 获取结果
/// </summary>
private IActionResult GetResult( string code, string message, dynamic data, int? httpStatusCode ) {
var options = GetJsonSerializerOptions();
var resultFactory = HttpContext.RequestServices.GetService<IResultFactory>();
if ( resultFactory == null )
return new Result( code, message, data, httpStatusCode );
return resultFactory.CreateResult( code, message, data, httpStatusCode );
return new Result( code, message, data, httpStatusCode, options );
return resultFactory.CreateResult( code, message, data, httpStatusCode, options );
}

/// <summary>
/// 获取Json序列化配置
/// </summary>
private JsonSerializerOptions GetJsonSerializerOptions() {
var factory = HttpContext.RequestServices.GetService<IJsonSerializerOptionsFactory>();
factory.CheckNull( nameof( factory ) );
return factory.CreateOptions();
}

/// <summary>
Expand Down
16 changes: 13 additions & 3 deletions src/Util.Application.WebApi/Filters/ExceptionHandlerAttribute.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Util.Helpers;
using Util.Exceptions;
using Util.AspNetCore;

namespace Util.Applications.Filters;

Expand Down Expand Up @@ -39,14 +40,23 @@ protected virtual string GetLocalizedMessages( ExceptionContext context, string
return stringLocalizer[message];
}


/// <summary>
/// 获取结果
/// </summary>
protected virtual IActionResult GetResult( ExceptionContext context, string code, string message, int? httpStatusCode ) {
var options = GetJsonSerializerOptions( context );
var resultFactory = context.HttpContext.RequestServices.GetService<IResultFactory>();
if ( resultFactory == null )
return new Result( code, message, null, httpStatusCode );
return resultFactory.CreateResult( code, message, null, httpStatusCode );
return new Result( code, message, null, httpStatusCode, options );
return resultFactory.CreateResult( code, message, null, httpStatusCode, options );
}

/// <summary>
/// 获取Json序列化配置
/// </summary>
private JsonSerializerOptions GetJsonSerializerOptions( ExceptionContext context ) {
var factory = context.HttpContext.RequestServices.GetService<IJsonSerializerOptionsFactory>();
factory.CheckNull( nameof( factory ) );
return factory.CreateOptions();
}
}
15 changes: 13 additions & 2 deletions src/Util.Application.WebApi/Filters/LockAttribute.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Util.Applications.Locks;
using Util.AspNetCore;
using Util.Helpers;
using Util.Properties;
using Util.Sessions;
Expand Down Expand Up @@ -89,10 +90,20 @@ protected string GetUserId( ActionExecutingContext context ) {
/// 获取结果
/// </summary>
private IActionResult GetResult( ActionExecutingContext context,string code, string message ) {
var options = GetJsonSerializerOptions( context );
var resultFactory = context.HttpContext.RequestServices.GetService<IResultFactory>();
if ( resultFactory == null )
return new Result( code, message );
return resultFactory.CreateResult( code, message, null, null );
return new Result( code, message,options: options );
return resultFactory.CreateResult( code, message, null, null, options );
}

/// <summary>
/// 获取Json序列化配置
/// </summary>
private JsonSerializerOptions GetJsonSerializerOptions( ActionExecutingContext context ) {
var factory = context.HttpContext.RequestServices.GetService<IJsonSerializerOptionsFactory>();
factory.CheckNull( nameof( factory ) );
return factory.CreateOptions();
}

/// <summary>
Expand Down
3 changes: 2 additions & 1 deletion src/Util.Application.WebApi/IResultFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@ public interface IResultFactory : ISingletonDependency {
/// <param name="message">消息</param>
/// <param name="data">数据</param>
/// <param name="httpStatusCode">Http状态码</param>
IActionResult CreateResult( string code, string message, dynamic data, int? httpStatusCode );
/// <param name="options">Json序列化配置</param>
IActionResult CreateResult( string code, string message, dynamic data, int? httpStatusCode, JsonSerializerOptions options );
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Microsoft.AspNetCore.Http;
using Util.Applications.Logging;
using Util.AspNetCore;
using Util.Infrastructure;
using Util.Logging;

Expand Down Expand Up @@ -89,9 +90,19 @@ protected virtual string GetLocalizedMessages( HttpContext context, string messa
/// 获取结果
/// </summary>
protected virtual IActionResult GetResult( HttpContext context, string code, string message, int? httpStatusCode ) {
var options = GetJsonSerializerOptions( context );
var resultFactory = context.RequestServices.GetService<IResultFactory>();
if ( resultFactory == null )
return new Result( code, message, null, httpStatusCode );
return resultFactory.CreateResult( code, message, null, httpStatusCode );
return new Result( code, message, null, httpStatusCode, options );
return resultFactory.CreateResult( code, message, null, httpStatusCode, options );
}

/// <summary>
/// 获取Json序列化配置
/// </summary>
private JsonSerializerOptions GetJsonSerializerOptions( HttpContext context ) {
var factory = context.RequestServices.GetService<IJsonSerializerOptionsFactory>();
factory.CheckNull( nameof( factory ) );
return factory.CreateOptions();
}
}
24 changes: 24 additions & 0 deletions src/Util.Application.WebApi/JsonSerializerOptionsFactory.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
using Util.AspNetCore;
using Util.SystemTextJson;

namespace Util.Applications;

/// <summary>
/// Json序列化配置工厂
/// </summary>
public class JsonSerializerOptionsFactory : IJsonSerializerOptionsFactory {
/// <summary>
/// 创建Json序列化配置
/// </summary>
public JsonSerializerOptions CreateOptions() {
return new JsonSerializerOptions {
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
Encoder = JavaScriptEncoder.Create( UnicodeRanges.All ),
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
Converters = {
new DateTimeJsonConverter(),
new NullableDateTimeJsonConverter()
}
};
}
}
Loading

0 comments on commit 0c40399

Please sign in to comment.