diff --git a/framework/src/Volo.Abp.Json/Volo/Abp/Json/AbpJsonOptions.cs b/framework/src/Volo.Abp.Json/Volo/Abp/Json/AbpJsonOptions.cs
index 5a900730bc..9449aa338d 100644
--- a/framework/src/Volo.Abp.Json/Volo/Abp/Json/AbpJsonOptions.cs
+++ b/framework/src/Volo.Abp.Json/Volo/Abp/Json/AbpJsonOptions.cs
@@ -1,9 +1,10 @@
-using Newtonsoft.Json;
-
-namespace Volo.Abp.Json
+namespace Volo.Abp.Json
{
public class AbpJsonOptions
{
- public JsonSerializerSettings SerializerSettings { get; } = new JsonSerializerSettings();
+ ///
+ /// Used to set default value for the DateTimeFormat.
+ ///
+ public string DefaultDateTimeFormat { get; set; }
}
}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Json/Volo/Abp/Json/Newtonsoft/AbpJsonIsoDateTimeConverter.cs b/framework/src/Volo.Abp.Json/Volo/Abp/Json/Newtonsoft/AbpJsonIsoDateTimeConverter.cs
index 1f3c5b3ee7..b02135bd6d 100644
--- a/framework/src/Volo.Abp.Json/Volo/Abp/Json/Newtonsoft/AbpJsonIsoDateTimeConverter.cs
+++ b/framework/src/Volo.Abp.Json/Volo/Abp/Json/Newtonsoft/AbpJsonIsoDateTimeConverter.cs
@@ -14,7 +14,11 @@ namespace Volo.Abp.Json.Newtonsoft
public AbpJsonIsoDateTimeConverter(IClock clock, IOptions abpJsonOptions)
{
_clock = clock;
- DateTimeFormat = abpJsonOptions.Value.SerializerSettings.DateFormatString;
+
+ if (abpJsonOptions.Value.DefaultDateTimeFormat != null)
+ {
+ DateTimeFormat = abpJsonOptions.Value.DefaultDateTimeFormat;
+ }
}
public override bool CanConvert(Type objectType)
diff --git a/framework/src/Volo.Abp.Json/Volo/Abp/Json/Newtonsoft/NewtonsoftJsonSerializer.cs b/framework/src/Volo.Abp.Json/Volo/Abp/Json/Newtonsoft/NewtonsoftJsonSerializer.cs
index 2763d5ecf3..262c2b04d7 100644
--- a/framework/src/Volo.Abp.Json/Volo/Abp/Json/Newtonsoft/NewtonsoftJsonSerializer.cs
+++ b/framework/src/Volo.Abp.Json/Volo/Abp/Json/Newtonsoft/NewtonsoftJsonSerializer.cs
@@ -1,5 +1,4 @@
using System;
-using Microsoft.Extensions.Options;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using Volo.Abp.DependencyInjection;
@@ -9,12 +8,10 @@ namespace Volo.Abp.Json.Newtonsoft
public class NewtonsoftJsonSerializer : IJsonSerializer, ITransientDependency
{
private readonly AbpJsonIsoDateTimeConverter _dateTimeConverter;
- private readonly AbpJsonOptions _abpJsonOptions;
- public NewtonsoftJsonSerializer(AbpJsonIsoDateTimeConverter dateTimeConverter, IOptions abpJsonOptions)
+ public NewtonsoftJsonSerializer(AbpJsonIsoDateTimeConverter dateTimeConverter)
{
_dateTimeConverter = dateTimeConverter;
- _abpJsonOptions = abpJsonOptions.Value;
}
public string Serialize(object obj, bool camelCase = true, bool indented = false)
@@ -34,7 +31,7 @@ namespace Volo.Abp.Json.Newtonsoft
protected virtual JsonSerializerSettings CreateSerializerSettings(bool camelCase = true, bool indented = false)
{
- var settings = _abpJsonOptions.SerializerSettings;
+ var settings = new JsonSerializerSettings();
settings.Converters.Insert(0, _dateTimeConverter);
diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Json/JsonResultController_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Json/JsonResultController_Tests.cs
index 039631091b..508ac04ce2 100644
--- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Json/JsonResultController_Tests.cs
+++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Json/JsonResultController_Tests.cs
@@ -13,7 +13,7 @@ namespace Volo.Abp.AspNetCore.Mvc.Json
{
services.Configure(options =>
{
- options.SerializerSettings.DateFormatString = "yyyy*MM*dd";
+ options.DefaultDateTimeFormat = "yyyy*MM*dd";
});
base.ConfigureServices(context, services);
diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Json/JsonSerializer_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Json/JsonSerializer_Tests.cs
index 3ad8738ca8..f621a8733a 100644
--- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Json/JsonSerializer_Tests.cs
+++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Json/JsonSerializer_Tests.cs
@@ -20,7 +20,7 @@ namespace Volo.Abp.AspNetCore.Mvc.Json
{
services.Configure(options =>
{
- options.SerializerSettings.DateFormatString = "yyyy*MM*dd";
+ options.DefaultDateTimeFormat = "yyyy*MM*dd";
});
base.ConfigureServices(context, services);