maliming
3 years ago
No known key found for this signature in database
GPG Key ID: A646B9CB645ECEA4
5 changed files with
12 additions and
29 deletions
-
framework/src/Volo.Abp.Json.SystemTextJson/Volo/Abp/Json/SystemTextJson/JsonConverters/AbpNullableStringToGuidConverter.cs
-
framework/src/Volo.Abp.Json.SystemTextJson/Volo/Abp/Json/SystemTextJson/JsonConverters/AbpStringToBooleanConverter.cs
-
framework/src/Volo.Abp.Json.SystemTextJson/Volo/Abp/Json/SystemTextJson/JsonConverters/AbpStringToEnumConverter.cs
-
framework/src/Volo.Abp.Json.SystemTextJson/Volo/Abp/Json/SystemTextJson/JsonConverters/AbpStringToGuidConverter.cs
-
framework/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/MemoryDb/JsonConverters/EntityJsonConverter.cs
|
|
|
@ -6,8 +6,6 @@ namespace Volo.Abp.Json.SystemTextJson.JsonConverters; |
|
|
|
|
|
|
|
public class AbpNullableStringToGuidConverter : JsonConverter<Guid?> |
|
|
|
{ |
|
|
|
private JsonSerializerOptions _writeJsonSerializerOptions; |
|
|
|
|
|
|
|
public override Guid? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) |
|
|
|
{ |
|
|
|
if (reader.TokenType == JsonTokenType.String) |
|
|
|
@ -33,9 +31,13 @@ public class AbpNullableStringToGuidConverter : JsonConverter<Guid?> |
|
|
|
|
|
|
|
public override void Write(Utf8JsonWriter writer, Guid? value, JsonSerializerOptions options) |
|
|
|
{ |
|
|
|
_writeJsonSerializerOptions ??= JsonSerializerOptionsHelper.Create(options, this); |
|
|
|
var entityConverter = (JsonConverter<Guid?>)_writeJsonSerializerOptions.GetConverter(typeof(Guid?)); |
|
|
|
|
|
|
|
entityConverter.Write(writer, value, _writeJsonSerializerOptions); |
|
|
|
if (value == null) |
|
|
|
{ |
|
|
|
writer.WriteNullValue(); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
writer.WriteStringValue(value.Value); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -8,8 +8,6 @@ namespace Volo.Abp.Json.SystemTextJson.JsonConverters; |
|
|
|
|
|
|
|
public class AbpStringToBooleanConverter : JsonConverter<bool> |
|
|
|
{ |
|
|
|
private JsonSerializerOptions _writeJsonSerializerOptions; |
|
|
|
|
|
|
|
public override bool Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) |
|
|
|
{ |
|
|
|
if (reader.TokenType == JsonTokenType.String) |
|
|
|
@ -31,9 +29,6 @@ public class AbpStringToBooleanConverter : JsonConverter<bool> |
|
|
|
|
|
|
|
public override void Write(Utf8JsonWriter writer, bool value, JsonSerializerOptions options) |
|
|
|
{ |
|
|
|
_writeJsonSerializerOptions ??= JsonSerializerOptionsHelper.Create(options, this); |
|
|
|
var entityConverter = (JsonConverter<bool>)_writeJsonSerializerOptions.GetConverter(typeof(bool)); |
|
|
|
|
|
|
|
entityConverter.Write(writer, value, _writeJsonSerializerOptions); |
|
|
|
writer.WriteBooleanValue(value); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -11,8 +11,6 @@ public class AbpStringToEnumConverter<T> : JsonConverter<T> |
|
|
|
|
|
|
|
private JsonSerializerOptions _readJsonSerializerOptions; |
|
|
|
|
|
|
|
private JsonSerializerOptions _writeJsonSerializerOptions; |
|
|
|
|
|
|
|
public AbpStringToEnumConverter() |
|
|
|
: this(namingPolicy: null, allowIntegerValues: true) |
|
|
|
{ |
|
|
|
@ -41,11 +39,7 @@ public class AbpStringToEnumConverter<T> : JsonConverter<T> |
|
|
|
|
|
|
|
public override void Write(Utf8JsonWriter writer, T value, JsonSerializerOptions options) |
|
|
|
{ |
|
|
|
_writeJsonSerializerOptions ??= JsonSerializerOptionsHelper.Create(options, x => |
|
|
|
x == this || |
|
|
|
x.GetType() == typeof(AbpStringToEnumFactory)); |
|
|
|
|
|
|
|
JsonSerializer.Serialize(writer, value, _writeJsonSerializerOptions); |
|
|
|
JsonSerializer.Serialize(writer, value); |
|
|
|
} |
|
|
|
|
|
|
|
public override T ReadAsPropertyName(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) |
|
|
|
|
|
|
|
@ -6,8 +6,6 @@ namespace Volo.Abp.Json.SystemTextJson.JsonConverters; |
|
|
|
|
|
|
|
public class AbpStringToGuidConverter : JsonConverter<Guid> |
|
|
|
{ |
|
|
|
private JsonSerializerOptions _writeJsonSerializerOptions; |
|
|
|
|
|
|
|
public override Guid Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) |
|
|
|
{ |
|
|
|
if (reader.TokenType == JsonTokenType.String) |
|
|
|
@ -28,9 +26,6 @@ public class AbpStringToGuidConverter : JsonConverter<Guid> |
|
|
|
|
|
|
|
public override void Write(Utf8JsonWriter writer, Guid value, JsonSerializerOptions options) |
|
|
|
{ |
|
|
|
_writeJsonSerializerOptions ??= JsonSerializerOptionsHelper.Create(options, this); |
|
|
|
var entityConverter = (JsonConverter<Guid>)_writeJsonSerializerOptions.GetConverter(typeof(Guid)); |
|
|
|
|
|
|
|
entityConverter.Write(writer, value, _writeJsonSerializerOptions); |
|
|
|
writer.WriteStringValue(value); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -8,8 +8,6 @@ namespace Volo.Abp.MemoryDb.JsonConverters; |
|
|
|
public class EntityJsonConverter<TEntity, TKey> : JsonConverter<TEntity> |
|
|
|
where TEntity : Entity<TKey> |
|
|
|
{ |
|
|
|
private JsonSerializerOptions _writeJsonSerializerOptions; |
|
|
|
|
|
|
|
public override TEntity Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) |
|
|
|
{ |
|
|
|
var jsonDocument = JsonDocument.ParseValue(ref reader); |
|
|
|
@ -34,7 +32,6 @@ public class EntityJsonConverter<TEntity, TKey> : JsonConverter<TEntity> |
|
|
|
|
|
|
|
public override void Write(Utf8JsonWriter writer, TEntity value, JsonSerializerOptions options) |
|
|
|
{ |
|
|
|
_writeJsonSerializerOptions ??= JsonSerializerOptionsHelper.Create(options, this); |
|
|
|
JsonSerializer.Serialize(writer, value, _writeJsonSerializerOptions); |
|
|
|
JsonSerializer.Serialize(writer, value, JsonSerializerOptionsHelper.Create(options, this)); |
|
|
|
} |
|
|
|
} |
|
|
|
|