<PackageReference Include="System.Text.Json" Version="5.0.0-preview.2.20160.6" />
KeyValuePairConverterFactory
using System.
Collections.
Generic;
using System.
Reflection;
using System.
Runtime.
CompilerServices;
namespace System.
Text.
Json.
Serialization.
Converters
{
internal sealed class KeyValuePairConverterFactory :
JsonConverterFactory
{
public override bool CanConvert(
Type typeToConvert)
{
if (!
typeToConvert.
IsGenericType)
return false;
Type genericTypeDefinition =
typeToConvert.
GetGenericTypeDefinition();
return genericTypeDefinition ==
typeof(
KeyValuePair<
,
>);
}
[
PreserveDependency(
".ctor()",
"System.Text.Json.Serialization.Converters.KeyValuePairConverter`2")]
public override JsonConverter CreateConverter(
Type type,
JsonSerializerOptions options)
{
Type type2 =
type.
GetGenericArguments()[
0];
Type type3 =
type.
GetGenericArguments()[
1];
return (
JsonConverter)
Activator.
CreateInstance(
typeof(
KeyValuePairConverter<
,
>).
MakeGenericType(
type2,
type3),
BindingFlags.
Instance |
BindingFlags.
Public,
null,
null,
null);
}
}
}