System\Text\Json\Serialization\Metadata\DefaultJsonTypeInfoResolver.Converters.cs (14)
15private static Dictionary<Type, JsonConverter>? s_defaultSimpleConverters;
43private static Dictionary<Type, JsonConverter> GetDefaultSimpleConverters()
46var converters = new Dictionary<Type, JsonConverter>(NumberOfSimpleConverters);
94void Add(JsonConverter converter) =>
100private static JsonConverter GetBuiltInConverter(Type typeToConvert)
105if (s_defaultSimpleConverters.TryGetValue(typeToConvert, out JsonConverter? converter))
126internal static bool TryGetDefaultSimpleConverter(Type typeToConvert, [NotNullWhen(true)] out JsonConverter? converter)
139private static JsonConverter? GetCustomConverterForMember(Type typeToConvert, MemberInfo memberInfo, JsonSerializerOptions options)
150internal static JsonConverter GetConverterForType(Type typeToConvert, JsonSerializerOptions options, bool resolveJsonConverterAttribute = true)
153JsonConverter? converter = options.GetConverterFromList(typeToConvert);
181private static JsonConverter GetConverterFromAttribute(JsonConverterAttribute converterAttribute, Type typeToConvert, MemberInfo? memberInfo, JsonSerializerOptions options)
183JsonConverter? converter;
215if (!typeof(JsonConverter).IsAssignableFrom(converterType) || ctor == null || !ctor.IsPublic)
220converter = (JsonConverter)Activator.CreateInstance(converterType)!;
System\Text\Json\Serialization\Metadata\JsonTypeInfo.cs (14)
44internal JsonTypeInfo(Type type, JsonConverter converter, JsonSerializerOptions options)
569/// <see cref="JsonConverter"/>. A custom converter can serialize as any JSON value type,
703/// Gets the <see cref="JsonConverter"/> associated with the current type.
706/// The <see cref="JsonConverter"/> associated with the type determines the value of <see cref="Kind"/>,
710public JsonConverter Converter { get; }
720/// The value of <see cref="Kind"/> is determined exclusively by the <see cref="JsonConverter"/>
1172/// <see cref="JsonConverter.GetSupportedJsonValueTypes"/>; built-in object/enumerable
1181/// <see cref="JsonConverter"/> metadata and does not perform any reflection, so it is
1198JsonConverter converter = caseTypeInfo.Converter;
1391JsonConverter converter = DefaultJsonTypeInfoResolver.GetConverterForType(typeof(T), options, resolveJsonConverterAttribute: false);
1425JsonConverter converter = DefaultJsonTypeInfoResolver.GetConverterForType(type, options, resolveJsonConverterAttribute: false);
1431internal static JsonTypeInfo CreateJsonTypeInfo(Type type, JsonConverter converter, JsonSerializerOptions options)
1445parameterTypes: [typeof(JsonConverter), typeof(JsonSerializerOptions)],
1796private static JsonTypeInfoKind GetTypeInfoKind(Type type, JsonConverter converter)