Skip to content

ReferenceCodec Methods

Functionality for reading and writing object references.

CreateRecordPlaceholder(SerializerSession)

static
View source
public static uint CreateRecordPlaceholder(SerializerSession session)
Records and returns a placeholder reference id for objects which cannot be immediately deserialized.

Parameters

sessionSerializerSession
The session.

Returns

The placeholder reference id.

MarkValueField(SerializerSession)

static
View source
public static void MarkValueField(SerializerSession session)
Indicates that the field being serialized or deserialized is a value type.

Parameters

sessionSerializerSession
The serializer session.

ReadReference(Reader<TInput>, Field)

static
View source
public static T ReadReference<T, TInput>(ref Reader<TInput> reader, Field field)
Reads a referenced value.

Parameters

readerReader<TInput>
The reader.
fieldField
The field.

Returns

The referenced value.

ReadReference(Reader<TInput>, Type?)

static
View source
public static object? ReadReference<TInput>(ref Reader<TInput> reader, Type? fieldType)
Reads the reference.

Parameters

readerReader<TInput>
The reader.
fieldTypeType?
The field type.

Returns

The referenced value.

RecordObject(SerializerSession, object?, uint)

static
View source
public static void RecordObject(SerializerSession session, object? value, uint referenceId)
Records that an object was read or written.

Parameters

sessionSerializerSession
The session.
valueobject?
The value.
referenceIduint
The reference identifier.

TryWriteReferenceField(Writer<TBufferWriter>, uint, Type?, Type, object?)

static
View source
public static bool TryWriteReferenceField<TBufferWriter>(ref Writer<TBufferWriter> writer, uint fieldId, Type? expectedType, Type actualType, object? value)
Write an object reference if value has already been written and has been tracked via ReferenceCodec. ///

Parameters

writerWriter<TBufferWriter>
The writer.
fieldIduint
The field identifier.
expectedTypeType?
The expected type.
actualTypeType
The actual type.
valueobject?
The value.

Returns

true if a reference was written, false otherwise.

TryWriteReferenceField(Writer<TBufferWriter>, uint, Type?, object?)

static
View source
public static bool TryWriteReferenceField<TBufferWriter>(ref Writer<TBufferWriter> writer, uint fieldId, Type? expectedType, object? value)
Write an object reference if value has already been written and has been tracked via ReferenceCodec.

Parameters

writerWriter<TBufferWriter>
The writer.
fieldIduint
The field identifier.
expectedTypeType?
The expected type.
valueobject?
The value.

Returns

true if a reference was written, false otherwise.