System\Text\Json\Serialization\Metadata\DefaultJsonTypeInfoResolver.Converters.cs (14)
15private static Dictionary<Type, JsonConverter>? s_defaultSimpleConverters;
41private static Dictionary<Type, JsonConverter> GetDefaultSimpleConverters()
44var converters = new Dictionary<Type, JsonConverter>(NumberOfSimpleConverters);
88void Add(JsonConverter converter) =>
94private static JsonConverter GetBuiltInConverter(Type typeToConvert)
99if (s_defaultSimpleConverters.TryGetValue(typeToConvert, out JsonConverter? converter))
120internal static bool TryGetDefaultSimpleConverter(Type typeToConvert, [NotNullWhen(true)] out JsonConverter? converter)
133private static JsonConverter? GetCustomConverterForMember(Type typeToConvert, MemberInfo memberInfo, JsonSerializerOptions options)
144internal static JsonConverter GetConverterForType(Type typeToConvert, JsonSerializerOptions options, bool resolveJsonConverterAttribute = true)
147JsonConverter? converter = options.GetConverterFromList(typeToConvert);
175private static JsonConverter GetConverterFromAttribute(JsonConverterAttribute converterAttribute, Type typeToConvert, MemberInfo? memberInfo, JsonSerializerOptions options)
177JsonConverter? converter;
193if (!typeof(JsonConverter).IsAssignableFrom(converterType) || ctor == null || !ctor.IsPublic)
198converter = (JsonConverter)Activator.CreateInstance(converterType)!;
System\Text\Json\Serialization\Metadata\JsonTypeInfo.cs (10)
41internal JsonTypeInfo(Type type, JsonConverter converter, JsonSerializerOptions options)
418/// Gets the <see cref="JsonConverter"/> associated with the current type.
421/// The <see cref="JsonConverter"/> associated with the type determines the value of <see cref="Kind"/>,
425public JsonConverter Converter { get; }
435/// The value of <see cref="Kind"/> is determined exclusively by the <see cref="JsonConverter"/>
885JsonConverter converter = DefaultJsonTypeInfoResolver.GetConverterForType(typeof(T), options, resolveJsonConverterAttribute: false);
926JsonConverter converter = DefaultJsonTypeInfoResolver.GetConverterForType(type, options, resolveJsonConverterAttribute: false);
932internal static JsonTypeInfo CreateJsonTypeInfo(Type type, JsonConverter converter, JsonSerializerOptions options)
946parameterTypes: new Type[] { typeof(JsonConverter), typeof(JsonSerializerOptions) },
1301private static JsonTypeInfoKind GetTypeInfoKind(Type type, JsonConverter converter)