Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GetConverterInternal()

JsonConverter System.Text.Json.JsonSerializerOptions.GetConverterInternal ( Type typeToConvert)
inlinepackage

Definition at line 445 of file JsonSerializerOptions.cs.

446 {
448 {
449 return value;
450 }
452 foreach (JsonConverter converter in Converters)
453 {
454 if (converter.CanConvert(typeToConvert))
455 {
457 break;
458 }
459 }
460 if (value == null)
461 {
463 if (jsonConverterAttribute != null)
464 {
466 }
467 }
468 if (value == null)
469 {
471 {
472 ThrowHelper.ThrowNotSupportedException_BuiltInConvertersNotRooted(typeToConvert);
473 return null;
474 }
476 {
477 value = value2;
478 }
479 else
480 {
483 {
484 if (jsonConverter.CanConvert(typeToConvert))
485 {
487 break;
488 }
489 }
490 }
491 }
493 {
494 value = jsonConverterFactory.GetConverterInternal(typeToConvert, this);
495 }
496 Type typeToConvert2 = value.TypeToConvert;
497 if (!typeToConvert2.IsAssignableFromInternal(typeToConvert) && !typeToConvert.IsAssignableFromInternal(typeToConvert2))
498 {
499 ThrowHelper.ThrowInvalidOperationException_SerializationConverterNotCompatible(value.GetType(), typeToConvert);
500 }
502 {
504 }
505 return value;
506 }
bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)
bool TryAdd(TKey key, TValue value)
static Dictionary< Type, JsonConverter > s_defaultSimpleConverters
static Attribute GetAttributeThatCanHaveMultiple(Type classType, Type attributeType, MemberInfo memberInfo)
JsonConverter GetConverterFromAttribute(JsonConverterAttribute converterAttribute, Type typeToConvert, Type classTypeAttributeIsOn, MemberInfo memberInfo)
readonly ConcurrentDictionary< Type, JsonConverter > _converters

References System.Text.Json.JsonSerializerOptions._context, System.Text.Json.JsonSerializerOptions._converters, System.Text.Json.JsonSerializerOptions._haveTypesBeenCreated, System.array, System.converter, System.Text.Json.Serialization.Metadata.JsonPropertyInfo< T >.ConverterBase, System.Text.Json.Dictionary, System.Text.Json.JsonSerializerOptions.GetAttributeThatCanHaveMultiple(), System.Text.Json.JsonSerializerOptions.GetConverterFromAttribute(), System.Text.Json.Serialization.JsonSerializerContext.GetTypeInfo(), System.Text.Json.Serialization.Metadata.JsonTypeInfo< T >.PropertyInfoForTypeInfo, System.Text.Json.JsonSerializerOptions.s_defaultFactoryConverters, System.Text.Json.JsonSerializerOptions.s_defaultSimpleConverters, System.Text.Json.ThrowHelper.ThrowInvalidOperationException_SerializationConverterNotCompatible(), System.Text.Json.ThrowHelper.ThrowNotSupportedException_BuiltInConvertersNotRooted(), System.Collections.Generic.Dictionary< TKey, TValue >.TryAdd(), System.Collections.Generic.Dictionary< TKey, TValue >.TryGetValue(), and System.value.

Referenced by System.Text.Json.JsonSerializerOptions.DetermineConverter(), System.Text.Json.JsonSerializerOptions.GetConverter(), System.Text.Json.Serialization.Metadata.JsonTypeInfo< T >.IsValidDataExtensionProperty(), System.Text.Json.Serialization.Metadata.JsonPropertyInfo< T >.ReadJsonAndAddExtensionProperty(), and System.Text.Json.Serialization.Metadata.JsonPropertyInfo< T >.ReadJsonExtensionDataValue().