Show / Hide Table of Contents

Class ReferencedObjectSerializerRoot

Root Referenced Object serializer for schema type lookup. When serializer ID isn't known and only schema type is available it may be resolved to ReferencedObjectSerializerRoot which then delegates logic to concrete ReferencedObjectSerializer. It saves concrete serializer ID as part of instance data, so even if just instance data is available it still possible to get concrete referenced object serializer and resolve it to valid instance.

Inheritance
System.Object
ObjectSerializer
ReferencedObjectSerializerRoot
ReferencedObjectSerializer
Implements
IReferenceableSerializer
ISerializer
Inherited Members
ObjectSerializer.parent
ObjectSerializer.EncodeWith(ISerializer, BinaryWriter, Object, SerializeFlags)
ObjectSerializer.DecodeReferenceable(BinaryReader)
ObjectSerializer.Decode(BinaryReader)
ObjectSerializer.DecodeToArray(BinaryReader, Array, Int32)
ObjectSerializer.DecodeToMember(BinaryReader, Object, MemberInfo)
ObjectSerializer.DecodeInstance(BinaryReader)
ObjectSerializer.Skip(BinaryReader)
ObjectSerializer.ToString()
ObjectSerializer.IsNullableType
ObjectSerializer.Type
ObjectSerializer.SchemaType
ObjectSerializer.Schema
ObjectSerializer.ReferenceService
ObjectSerializer.ID
Namespace: Eco.Core.Serialization.Serializers
Assembly: Eco.Core.dll
Syntax
public class ReferencedObjectSerializerRoot : ObjectSerializer, IReferenceableSerializer, ISerializer

Constructors

ReferencedObjectSerializerRoot(SimpleSerializer)

Constructor for root ReferencedObjectSerializer. It not intended to be used for encoding/decoding, but as abstract root delegating to real instances of ReferencedObjectSerializer.

Declaration
public ReferencedObjectSerializerRoot(SimpleSerializer parent)
Parameters
Type Name Description
SimpleSerializer parent

ReferencedObjectSerializerRoot(SimpleSerializer, Type, ISerializer, Func<Object, Object>)

Declaration
protected ReferencedObjectSerializerRoot(SimpleSerializer parent, Type type, ISerializer keySerializer, Func<object, object> referenceResolver)
Parameters
Type Name Description
SimpleSerializer parent
System.Type type
ISerializer keySerializer
System.Func<System.Object, System.Object> referenceResolver

Fields

ReferencedObjectSchemaType

Declaration
public const string ReferencedObjectSchemaType = "referencedobject"
Field Value
Type Description
System.String

Methods

DecodeObject(BinaryReader, Int32)

Declaration
protected override DecodedObject DecodeObject(BinaryReader reader, int objTypeID)
Parameters
Type Name Description
System.IO.BinaryReader reader
System.Int32 objTypeID
Returns
Type Description
DecodedObject
Overrides
ObjectSerializer.DecodeObject(BinaryReader, Int32)

Encode(BinaryWriter, Object, SerializeFlags)

Declaration
public override void Encode(BinaryWriter writer, object key, SerializeFlags flags)
Parameters
Type Name Description
System.IO.BinaryWriter writer
System.Object key
SerializeFlags flags
Overrides
ObjectSerializer.Encode(BinaryWriter, Object, SerializeFlags)

EncodeAsReference(BinaryWriter, BinaryReader)

Encodes key from keyReader as a reference by the key to writer.

Declaration
public void EncodeAsReference(BinaryWriter writer, BinaryReader keyReader)
Parameters
Type Name Description
System.IO.BinaryWriter writer
System.IO.BinaryReader keyReader

EncodeInstance(BinaryWriter, Object, SerializeFlags)

Declaration
protected override void EncodeInstance(BinaryWriter writer, object instance, SerializeFlags flags)
Parameters
Type Name Description
System.IO.BinaryWriter writer
System.Object instance
SerializeFlags flags
Overrides
ObjectSerializer.EncodeInstance(BinaryWriter, Object, SerializeFlags)

SkipInstance(BinaryReader)

Declaration
protected override void SkipInstance(BinaryReader reader)
Parameters
Type Name Description
System.IO.BinaryReader reader
Overrides
ObjectSerializer.SkipInstance(BinaryReader)

Implements

IReferenceableSerializer
ISerializer

Extension Methods

PropertyChanges.FirePropertyChanged(Object, String)
PropertyChanges.FirePropertyChanged(Object, String, Object, Object)
PropertyChanges.FirePropertyChanged(Object, MemberChangedBeforeAfterEventArgs)
☀
☾
In This Article
Back to top
Copyright (c) Strange Loop Games 2021
☀
☾