[This is preliminary documentation and is subject to change.]
Provides Slim serialization functionality
Classes
Class | Description | |
---|---|---|
![]() | _ISerializableFixup | |
![]() | _OnDeserializedCallback | |
![]() | Arrays | |
![]() | PODSlimSerializer |
Serializes CLR object graphs using PortableObjectDocument container and Slim binary serialization algorithm.
This class is far less performant than SlimSerializer, however it serializes types using document model that
allows to transform/change data during serialization/deserialization.
This class is needed for upgrades, when object metadata may change but need to be read (maybe partially) back into the new type structure
|
![]() | RefPool | |
![]() | SlimDeserializationCtorSkipAttribute |
When set on a parameterless constructor, instructs the Slim serializer not to invoke
the ctor() on deserialization
|
![]() | SlimDeserializationException |
Base exception thrown by the Slim when deserializing objects
|
![]() | SlimException |
Base exception thrown by the Slim serialization format
|
![]() | SlimInvalidTypeHandleException |
Thrown by type registry when supplied type handle is invalid/not found
|
![]() | SlimSerializationException |
Base exception thrown by the Slim when serializing objects
|
![]() | SlimSerializationProhibitedAttribute |
When set fails an attempt to serialize the decorated type
|
![]() | SlimSerializationProhibitedException |
Thrown when a type is decoreted with SlimSerializationProhibitedAttribute
|
![]() | SlimSerializer |
Implements Slim serialization algorithm that relies on an injectable SlimFormat-derivative (through .ctor) paremeter.
This class was designed for highly-efficient serialization of types without versioning.
SlimSerializer supports a concept of "known types" that save space by not emitting their names into stream.
Performance note:
This serializer yields on average 1/4 serialization and 1/2 deserialization times while compared to BinaryFormatter.
Serialization of Record-instances usually takes 1/6 of BinaryFormatter time.
Format takes 1/10 space for records and 1/2 for general object graphs.
Such performance is achieved because of dynamic compilation of type-specific serialization/deserialization methods.
This type is thread-safe for serializations/deserializations when TypeMode is set to "PerCall"
|
![]() | TypeDescriptor |
Type descriptor dynamicaly compiles serialization/deserialization expressions for a particular type
|
![]() | TypeRegistry |
Provides a registry of types, types that do not need to be described in a serialization stream
|
![]() | TypeSchema |
Structures
Structure | Description | |
---|---|---|
![]() | QuickRefList |
Interfaces
Interface | Description | |
---|---|---|
![]() | ISlimSerializer |
Marker interface for formats based on Slim algorithm family
|
Delegates
Delegate | Description | |
---|---|---|
![]() | dyn_deserialize | |
![]() | dyn_serialize |
Enumerations
Enumeration | Description | |
---|---|---|
![]() | TypeRegistryMode |
Denotes modes of handling type registry by Slim serializer
|