The serialization of business objects is the process in which business objects are converted to data for being then persisted on a storage device (ES: a relational database or an XML file).
DADO Solution® supports different types of serialization, depending on the available implementation and design.
Serialization based on public properties and fields
This serialization looks for all read/write public properties and fields and gets/sets their values. This works via .NET reflection (and is therefore quite slow) and is the default for business objects not implementing "System.Runtime.Serialization.ISerializable".
Serialization based on object fields
This serialization looks for all private and public fields and gets/sets their values. This works via .NET reflection (and is therefore quite slow).
Serialization based on custom serialization
This serialization invokes the "System.Runtime.Serialization.ISerializable" serialization method "GetObjectData". If the object also implements "DADO.Serialization.ISerializableEx", for the deserialization "SetObjectData" is invoked (avoiding reflection), otherwise the standard deserialization class constructor is used (using reflection). Implementing "DADO.Serialization.ISerializableEx" or using an own serialization surrogate is the fastest way to create business objects, and therefore also the suggested one.
Serialization based on custom serialization surrogate
This serialization use an extern serialization surrogate (object implementing "System.Runtime.Serialization.ISerializationSurrogate" and configurable via designer) which handle the serialization of the business objects. Since it doesn't use reflection it is one of the fastest way to serialize/deserialize objects.