From f7ebd426f48ec15bc3f4245e83a4a07d1342b4f8 Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 29 Oct 2020 17:22:59 +0800 Subject: [PATCH] Refactor. --- .../Volo/Abp/Json/JsonConverters/AbpDateTimeConverter.cs | 4 ++-- .../Abp/Json/JsonConverters/AbpNullableDateTimeConverter.cs | 4 ++-- .../Json/JsonConverters/ObjectToInferredTypesConverter.cs | 3 +++ .../Volo/Abp/MemoryDb/JsonConverters/EntityJsonConverter.cs | 5 ++++- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/framework/src/Volo.Abp.Json/Volo/Abp/Json/JsonConverters/AbpDateTimeConverter.cs b/framework/src/Volo.Abp.Json/Volo/Abp/Json/JsonConverters/AbpDateTimeConverter.cs index 7523f1e4d9..29e99f285e 100644 --- a/framework/src/Volo.Abp.Json/Volo/Abp/Json/JsonConverters/AbpDateTimeConverter.cs +++ b/framework/src/Volo.Abp.Json/Volo/Abp/Json/JsonConverters/AbpDateTimeConverter.cs @@ -27,11 +27,11 @@ namespace Volo.Abp.Json.JsonConverters { if (_options.DefaultDateTimeFormat.IsNullOrWhiteSpace()) { - writer.WriteStringValue(_clock.Normalize(value)); + writer.WriteStringValue(value); } else { - writer.WriteStringValue(_clock.Normalize(value).ToString(_options.DefaultDateTimeFormat)); + writer.WriteStringValue(value.ToString(_options.DefaultDateTimeFormat)); } } } diff --git a/framework/src/Volo.Abp.Json/Volo/Abp/Json/JsonConverters/AbpNullableDateTimeConverter.cs b/framework/src/Volo.Abp.Json/Volo/Abp/Json/JsonConverters/AbpNullableDateTimeConverter.cs index 0e1e20bedc..f061b94cf5 100644 --- a/framework/src/Volo.Abp.Json/Volo/Abp/Json/JsonConverters/AbpNullableDateTimeConverter.cs +++ b/framework/src/Volo.Abp.Json/Volo/Abp/Json/JsonConverters/AbpNullableDateTimeConverter.cs @@ -38,11 +38,11 @@ namespace Volo.Abp.Json.JsonConverters { if (_options.DefaultDateTimeFormat.IsNullOrWhiteSpace()) { - writer.WriteStringValue(_clock.Normalize(value.Value)); + writer.WriteStringValue(value.Value); } else { - writer.WriteStringValue(_clock.Normalize(value.Value).ToString(_options.DefaultDateTimeFormat)); + writer.WriteStringValue(value.Value.ToString(_options.DefaultDateTimeFormat)); } } } diff --git a/framework/src/Volo.Abp.Json/Volo/Abp/Json/JsonConverters/ObjectToInferredTypesConverter.cs b/framework/src/Volo.Abp.Json/Volo/Abp/Json/JsonConverters/ObjectToInferredTypesConverter.cs index 4a3cd5e8df..c7497cfa60 100644 --- a/framework/src/Volo.Abp.Json/Volo/Abp/Json/JsonConverters/ObjectToInferredTypesConverter.cs +++ b/framework/src/Volo.Abp.Json/Volo/Abp/Json/JsonConverters/ObjectToInferredTypesConverter.cs @@ -4,6 +4,9 @@ using System.Text.Json.Serialization; namespace Volo.Abp.Json.JsonConverters { + /// + /// https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-converters-how-to#deserialize-inferred-types-to-object-properties + /// public class ObjectToInferredTypesConverter : JsonConverter { public override object Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) diff --git a/framework/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/MemoryDb/JsonConverters/EntityJsonConverter.cs b/framework/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/MemoryDb/JsonConverters/EntityJsonConverter.cs index 9a41fd4045..8723ce8958 100644 --- a/framework/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/MemoryDb/JsonConverters/EntityJsonConverter.cs +++ b/framework/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/MemoryDb/JsonConverters/EntityJsonConverter.cs @@ -24,7 +24,10 @@ namespace Volo.Abp.MemoryDb.JsonConverters public override void Write(Utf8JsonWriter writer, TEntity value, JsonSerializerOptions options) { - JsonSerializer.Serialize(writer, value); + var newOptions = new JsonSerializerOptions(options); + newOptions.Converters.Remove(this); + var entityConverter = (JsonConverter)newOptions.GetConverter(typeof(TEntity)); + entityConverter.Write(writer, value, newOptions); } } }