|
|
@ -9,8 +9,6 @@ namespace Volo.Abp.Json.SystemTextJson.JsonConverters; |
|
|
/// </summary>
|
|
|
/// </summary>
|
|
|
public class ObjectToInferredTypesConverter : JsonConverter<object> |
|
|
public class ObjectToInferredTypesConverter : JsonConverter<object> |
|
|
{ |
|
|
{ |
|
|
private JsonSerializerOptions? _writeJsonSerializerOptions; |
|
|
|
|
|
|
|
|
|
|
|
public override object Read( |
|
|
public override object Read( |
|
|
ref Utf8JsonReader reader, |
|
|
ref Utf8JsonReader reader, |
|
|
Type typeToConvert, |
|
|
Type typeToConvert, |
|
|
@ -30,9 +28,14 @@ public class ObjectToInferredTypesConverter : JsonConverter<object> |
|
|
object objectToWrite, |
|
|
object objectToWrite, |
|
|
JsonSerializerOptions options) |
|
|
JsonSerializerOptions options) |
|
|
{ |
|
|
{ |
|
|
_writeJsonSerializerOptions ??= JsonSerializerOptionsHelper.Create(options, x => |
|
|
var runtimeType = objectToWrite.GetType(); |
|
|
x == this || |
|
|
if (runtimeType == typeof(object)) |
|
|
x.GetType() == typeof(ObjectToInferredTypesConverter)); |
|
|
{ |
|
|
JsonSerializer.Serialize(writer, objectToWrite, objectToWrite.GetType(), _writeJsonSerializerOptions); |
|
|
writer.WriteStartObject(); |
|
|
|
|
|
writer.WriteEndObject(); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
JsonSerializer.Serialize(writer, objectToWrite, runtimeType, options); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|