From df5bdb71291f6ec74accbec9b416c7b88dc33d8a Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 9 Sep 2025 18:26:20 +0800 Subject: [PATCH] Refactor ObjectToInferredTypesConverter serialization logic --- .../ObjectToInferredTypesConverter.cs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) 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); } }