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