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);
100void Add(JsonConverter converter) =>
106private static JsonConverter GetBuiltInConverter(Type typeToConvert)
111if (s_defaultSimpleConverters.TryGetValue(typeToConvert, out JsonConverter? converter))
132internal static bool TryGetDefaultSimpleConverter(Type typeToConvert, [NotNullWhen(true)] out JsonConverter? converter)
145private static JsonConverter? GetCustomConverterForMember(Type typeToConvert, MemberInfo memberInfo, JsonSerializerOptions options)
156internal static JsonConverter GetConverterForType(Type typeToConvert, JsonSerializerOptions options, bool resolveJsonConverterAttribute = true)
159JsonConverter? converter = options.GetConverterFromList(typeToConvert);
187private static JsonConverter GetConverterFromAttribute(JsonConverterAttribute converterAttribute, Type typeToConvert, MemberInfo? memberInfo, JsonSerializerOptions options)
189JsonConverter? converter;
221if (!typeof(JsonConverter).IsAssignableFrom(converterType) || ctor == null || !ctor.IsPublic)
226converter = (JsonConverter)Activator.CreateInstance(converterType)!;
System\Text\Json\Serialization\Metadata\JsonTypeInfo.cs (13)
39internal JsonTypeInfo(Type type, JsonConverter converter, JsonSerializerOptions options)
690/// Gets the <see cref="JsonConverter"/> associated with the current type.
693/// The <see cref="JsonConverter"/> associated with the type determines the value of <see cref="Kind"/>,
697public JsonConverter Converter { get; }
707/// The value of <see cref="Kind"/> is determined exclusively by the <see cref="JsonConverter"/>
1153/// <see cref="JsonConverter.GetSupportedJsonValueTypes"/>. User-defined converters
1158/// <see cref="JsonConverter"/> metadata and does not perform any reflection, so it is
1171JsonConverter converter = caseTypeInfo.Converter;
1351JsonConverter converter = DefaultJsonTypeInfoResolver.GetConverterForType(typeof(T), options, resolveJsonConverterAttribute: false);
1385JsonConverter converter = DefaultJsonTypeInfoResolver.GetConverterForType(type, options, resolveJsonConverterAttribute: false);
1391internal static JsonTypeInfo CreateJsonTypeInfo(Type type, JsonConverter converter, JsonSerializerOptions options)
1405parameterTypes: [typeof(JsonConverter), typeof(JsonSerializerOptions)],
1756private static JsonTypeInfoKind GetTypeInfoKind(Type type, JsonConverter converter)