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

◆ WriteReferenceForObject()

static MetadataPropertyName System.Text.Json.JsonSerializer.WriteReferenceForObject ( JsonConverter jsonConverter,
object currentValue,
ref WriteStack state,
Utf8JsonWriter writer )
inlinestaticpackage

Definition at line 1490 of file JsonSerializer.cs.

1491 {
1492 MetadataPropertyName result;
1493 if (state.BoxedStructReferenceId != null)
1494 {
1495 writer.WriteString(s_metadataId, state.BoxedStructReferenceId);
1496 result = MetadataPropertyName.Id;
1498 }
1499 else if (!jsonConverter.CanHaveIdMetadata || jsonConverter.IsValueType)
1500 {
1501 result = MetadataPropertyName.NoMetadata;
1502 }
1503 else
1504 {
1505 bool alreadyExists;
1506 string reference = state.ReferenceResolver.GetReference(currentValue, out alreadyExists);
1507 if (alreadyExists)
1508 {
1509 writer.WriteString(s_metadataRef, reference);
1510 writer.WriteEndObject();
1511 result = MetadataPropertyName.Ref;
1512 }
1513 else
1514 {
1515 writer.WriteString(s_metadataId, reference);
1516 result = MetadataPropertyName.Id;
1517 }
1518 }
1519 return result;
1520 }
static readonly JsonEncodedText s_metadataRef
static readonly JsonEncodedText s_metadataId

References System.Text.Json.Dictionary, System.Text.Json.JsonSerializer.s_metadataId, System.Text.Json.JsonSerializer.s_metadataRef, System.state, and System.writer.

Referenced by System.Text.Json.Serialization.Converters.ObjectDefaultConverter< T >.OnTryWrite(), and System.Text.Json.Serialization.JsonDictionaryConverter< TDictionary, TKey, TValue >.OnTryWrite().