<PackageReference Include="System.Text.Json" Version="6.0.0-preview.4.21253.7" />
ObjectConverter
namespace System.
Text.
Json.
Serialization.
Converters
{
internal sealed class ObjectConverter :
JsonConverter<
object>
{
public ObjectConverter()
{
IsInternalConverterForNumberType =
true;
}
public override object Read(
ref Utf8JsonReader reader,
Type typeToConvert,
JsonSerializerOptions options)
{
return JsonElement.
ParseValue(
ref reader);
}
public override void Write(
Utf8JsonWriter writer,
object value,
JsonSerializerOptions options)
{
throw new InvalidOperationException();
}
internal override object ReadWithQuotes(
ref Utf8JsonReader reader)
{
ThrowHelper.
ThrowNotSupportedException_DictionaryKeyTypeNotSupported(
TypeToConvert,
this);
return null;
}
internal override void WriteWithQuotes(
Utf8JsonWriter writer,
object value,
JsonSerializerOptions options,
ref WriteStack state)
{
Type type =
value.
GetType();
JsonConverter converter =
options.
GetConverter(
type);
if (
converter ==
this)
ThrowHelper.
ThrowNotSupportedException_DictionaryKeyTypeNotSupported(
type,
this);
converter.
WriteWithQuotesAsObject(
writer,
value,
options,
ref state);
}
internal override object ReadNumberWithCustomHandling(
ref Utf8JsonReader reader,
JsonNumberHandling handling)
{
return JsonElement.
ParseValue(
ref reader);
}
}
}