<PackageReference Include="System.Text.Json" Version="6.0.0-preview.4.21253.7" />

JsonNodeConverterFactory

using System.Text.Json.Node; using System.Text.Json.Serialization.Metadata; namespace System.Text.Json.Serialization.Converters { internal sealed class JsonNodeConverterFactory : JsonConverterFactory { public override JsonConverter CreateConverter(Type typeToConvert, JsonSerializerOptions options) { if (JsonTypeInfo.ObjectType == typeToConvert) { if (options.UnknownTypeHandling == JsonUnknownTypeHandling.JsonNode) return JsonNodeConverter.Instance; return JsonMetadataServices.ObjectConverter; } if (typeof(JsonValue).IsAssignableFrom(typeToConvert)) return JsonNodeConverter.Instance.ValueConverter; if (typeof(JsonObject) == typeToConvert) return JsonNodeConverter.Instance.ObjectConverter; if (typeof(JsonArray) == typeToConvert) return JsonNodeConverter.Instance.ArrayConverter; return JsonNodeConverter.Instance; } public override bool CanConvert(Type typeToConvert) { if (!(typeToConvert == JsonTypeInfo.ObjectType)) return typeof(JsonNode).IsAssignableFrom(typeToConvert); return true; } } }