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.