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

◆ WriteReferenceForCollection()

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

Definition at line 1522 of file JsonSerializer.cs.

1523 {
1524 MetadataPropertyName result;
1525 if (state.BoxedStructReferenceId != null)
1526 {
1527 writer.WriteStartObject();
1528 writer.WriteString(s_metadataId, state.BoxedStructReferenceId);
1529 writer.WriteStartArray(s_metadataValues);
1530 result = MetadataPropertyName.Id;
1532 }
1533 else if (!jsonConverter.CanHaveIdMetadata || jsonConverter.IsValueType)
1534 {
1535 writer.WriteStartArray();
1536 result = MetadataPropertyName.NoMetadata;
1537 }
1538 else
1539 {
1540 bool alreadyExists;
1541 string reference = state.ReferenceResolver.GetReference(currentValue, out alreadyExists);
1542 if (alreadyExists)
1543 {
1544 writer.WriteStartObject();
1545 writer.WriteString(s_metadataRef, reference);
1546 writer.WriteEndObject();
1547 result = MetadataPropertyName.Ref;
1548 }
1549 else
1550 {
1551 writer.WriteStartObject();
1552 writer.WriteString(s_metadataId, reference);
1553 writer.WriteStartArray(s_metadataValues);
1554 result = MetadataPropertyName.Id;
1555 }
1556 }
1557 return result;
1558 }
static readonly JsonEncodedText s_metadataRef
static readonly JsonEncodedText s_metadataValues
static readonly JsonEncodedText s_metadataId

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

Referenced by System.Text.Json.Serialization.JsonCollectionConverter< TCollection, TElement >.OnTryWrite().