Vixen
02b45cc4
csharp
public abstract class DataSerializer

The non-generic face of a serializer, for when the type is only known at run time.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

Polymorphism is the reason this exists. A field typed as a base class holding a derived instance has to be written by the *derived* type's serializer, and the code doing the writing knows only the base — so somewhere the dispatch has to go through a shape that is not generic over the concrete type.

The object in these signatures would box a struct, which is why nothing uses them for one: polymorphism applies to reference types, where the value is already a reference and the cast is free. Value types go through Serialize and never touch this.

Fields and properties (1)

  • public abstract Type SerializedType

    What this serializer reads and writes.

Methods (2)

  • public abstract void SerializeObject(ref SerializationWriter writer, object value)

    Writes a value whose type is only known at run time.

  • public abstract object DeserializeObject(ref SerializationReader reader)

    Reads a value whose type is only known at run time.

Used by (8)

  • DataSerializerVixen.Core.Serialization
  • ObjectDatabaseVixen.Core.Serialization
  • SerializationReaderVixen.Core.Serialization
  • SerializationTestsVixen.Core.Serialization.Tests
  • SerializationWriterVixen.Core.Serialization
  • SerializerRegistryVixen.Core.Serialization
  • TypeDescriptorVixen.Core.Reflection
  • TypeRegistryTestsVixen.Core.Reflection.Tests