Browse Source

Refactor.

pull/5952/head
maliming 5 years ago
parent
commit
f7ebd426f4
  1. 4
      framework/src/Volo.Abp.Json/Volo/Abp/Json/JsonConverters/AbpDateTimeConverter.cs
  2. 4
      framework/src/Volo.Abp.Json/Volo/Abp/Json/JsonConverters/AbpNullableDateTimeConverter.cs
  3. 3
      framework/src/Volo.Abp.Json/Volo/Abp/Json/JsonConverters/ObjectToInferredTypesConverter.cs
  4. 5
      framework/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/MemoryDb/JsonConverters/EntityJsonConverter.cs

4
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));
}
}
}

4
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));
}
}
}

3
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
{
/// <summary>
/// https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-converters-how-to#deserialize-inferred-types-to-object-properties
/// </summary>
public class ObjectToInferredTypesConverter : JsonConverter<object>
{
public override object Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)

5
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<TEntity>)newOptions.GetConverter(typeof(TEntity));
entityConverter.Write(writer, value, newOptions);
}
}
}

Loading…
Cancel
Save