IGLib 1.4
The IGLib base library for development of numerical, technical and business applications.
|
Base class for serialization helper classes. More...
Classes | |
interface | ISerializationTestArrayMember |
Interface for members of arrays in classes for testing serialization. More... | |
interface | ISerializationTestClass |
Interface for classes for testing serialization. More... | |
class | SerializationTestArrayMember |
Member of arrays in test classes for testing serialization. More... | |
class | SerializationTestClass |
Test class for testing serialization. More... | |
class | TestClass |
Simple class using for testing serialization. More... | |
class | TestClassDerived |
Simple derived class using for testing serialization. More... | |
Public Member Functions | |
SerializerBase () | |
abstract void | Serialize< T > (T serializedObject, Stream serializationStream) |
Serializes the specified object and outputs it to a stream. | |
void | Serialize< T > (T serializedObject, string filePath) |
Serializes the specified object and outputs it to a file. If the specified file exists then it is overwritten. | |
void | Serialize< T > (T serializedObject, string filePath, bool append) |
Serializes the specified object and outputs it to a file. | |
string | Serialize< T > (T obj) |
Serializes the specified object to a string and returns it. | |
abstract T | Deserialize< T > (Stream deserializationStream) |
Deserializes an object from the specified stream containing JSON representation of the object. Deserialized object is instantiated and returned. | |
T | DeserializeString< T > (string strSerialized) |
Deserializes an object from JSON - serialized string representation and returns it. | |
T | DeserializeFile< T > (string filePath) |
Deserializes an object from JSON - serialized file and returns it. | |
Static Public Member Functions | |
static void | TestSerializationAll (string outputDirectory) |
Tests different serialization methods with different data. | |
static void | TestSerializationDto< TypeDto, Type > (ISerializer serializer, Type serializedObject, string filePath, bool firstStep, bool secondStep) |
Test serialization performed by the specified serialization helper class. This test does not perform only serialization/deserialization, but also performs copying of an object to and from the corresponding DTO (Data Transfer Object). It is actually DTO that is serialized and deserialized. This function creates a test object, copies it to the corresponding DTO (Data Transfer object) of the specified type, serializes it and stores it to a file, then deserializes the DTO (instantiates a new object for the stored record), copies the contents of the DTO to a new object, creates a new object and copies data to it from the DTO, and serializes the DTO again and writes it into another file in the same directory, but with a modified name. Both files can then be compared in order to see if something was lost during conversions or serialization/deserialization. | |
static void | TestSerializationDto< TypeDto, Type, BaseType > (ISerializer serializer, Type serializedObject, string filePath, bool firstStep, bool secondStep) |
Test serialization performed by the specified serialization helper class. This test does not perform only serialization/deserialization, but also performs copying of an object to and from the corresponding DTO (Data Transfer Object). It is actually the DTO that is serialized and deserialized. This function creates a test object, copies it to the corresponding DTO (Data Transfer object) of the specified type, serializes it and stores it to a file, then deserializes the DTO (instantiates a new object for the stored record), copies the contents of the DTO to a new object, creates a new object and copies data to it from the DTO, and serializes the DTO again and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost during conversions or serialization/deserialization. IMPORTANT REMARK: In most cases one will not need this function, but can use the variant with only two type parameters (BaseType omitted). | |
static void | TestSerialization< SerializationTestClass > (ISerializer serializer, SerializationTestClass serObject, string filePath) |
Test serialization performed by the specified serialization helper class. This function creates a test object, serializes it ans stores it to a file, then deserializes it (instantiates a new object for the stored record), and serializes that object and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost. | |
static void | TestSerialization< TypeSer > (ISerializer serializer, TypeSer serObject, string filePath, bool firstStep, bool secondStep) |
Test serialization performed by the specified serialization helper class. This function creates a test object, serializes it ans stores it to a file, then deserializes it (instantiates a new object for the stored record), and serializes that object and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost. | |
static void | TestSerializationJSON (string filePath, object serObject) |
Test serialization performed by the specified serialization helper class. This function creates a test object, serializes it ans stores it to a file, then deserializes it (instantiates a new object for the stored record), and serializes that object and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost. | |
static void | TestSerializationJSON (string filePath) |
Test serialization performed by the JSon serializer. This function creates a test object, serializes it ans stores it to a file, then deserializes it (instantiates a new object for the stored record), and serializes that object and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost. | |
static void | TestType< T > (T obj) |
Writes the type of the object passed as parameter in two ways: by using tpye parameter of the generic method and by using object's GetType() method. The object itself is not printed out. | |
static void | TestType< T > (T obj, bool printObject) |
Writes the type of the object passed as parameter in two ways: by using tpye parameter of the generic method and by using object's GetType() method. | |
static void | ExampleTestType () |
Testing the type of the object within a generic method. |
Base class for serialization helper classes.
$A Igor May09;
IG::Lib::SerializerBase::SerializerBase | ( | ) | [inline] |
abstract void IG::Lib::SerializerBase::Serialize< T > | ( | T | serializedObject, |
Stream | serializationStream | ||
) | [pure virtual] |
Serializes the specified object and outputs it to a stream.
T | Type of the object to be serialized. |
serializedObject | Object to be serialized. |
serializationStream | Stream on which the serialized object is output. |
Implements IG::Lib::ISerializer.
Implemented in IG::Lib::SerializerJson, and IG::Lib::SerializerJsonBase.
void IG::Lib::SerializerBase::Serialize< T > | ( | T | serializedObject, |
string | filePath | ||
) | [inline] |
Serializes the specified object and outputs it to a file. If the specified file exists then it is overwritten.
T | Type of the object to be serialized. |
serializedObject | Object to be serialized. |
filePath | Path to the file that serialized object is written to. |
Implements IG::Lib::ISerializer.
void IG::Lib::SerializerBase::Serialize< T > | ( | T | serializedObject, |
string | filePath, | ||
bool | append | ||
) | [inline] |
Serializes the specified object and outputs it to a file.
T | Type of the object to be serialized. |
serializedObject | Object to be serialized. |
filePath | Path to the file that serialized object is written to. |
append | If true then the generated contents is appended to a file. |
Implements IG::Lib::ISerializer.
string IG::Lib::SerializerBase::Serialize< T > | ( | T | obj | ) | [inline] |
Serializes the specified object to a string and returns it.
T | Type of the object to be serialized. |
obj | Objejct to be serialized. |
Implements IG::Lib::ISerializer.
abstract T IG::Lib::SerializerBase::Deserialize< T > | ( | Stream | deserializationStream | ) | [pure virtual] |
Deserializes an object from the specified stream containing JSON representation of the object. Deserialized object is instantiated and returned.
T | Type of the deserialized object. |
deserializationStream | Stream from which object is deserialized. |
Implements IG::Lib::ISerializer.
Implemented in IG::Lib::SerializerJsonBase.
T IG::Lib::SerializerBase::DeserializeString< T > | ( | string | strSerialized | ) | [inline] |
Deserializes an object from JSON - serialized string representation and returns it.
T | Type of the deserialized object. |
strSerialized | String containing the serialized object. |
Implements IG::Lib::ISerializer.
T IG::Lib::SerializerBase::DeserializeFile< T > | ( | string | filePath | ) | [inline] |
Deserializes an object from JSON - serialized file and returns it.
T | Type of the deserialized object. |
filePath | Path to thefile. File must contain the appropriately serialized object of the correct type. |
Implements IG::Lib::ISerializer.
static void IG::Lib::SerializerBase::TestSerializationAll | ( | string | outputDirectory | ) | [inline, static] |
Tests different serialization methods with different data.
outputDirectory | Directory where test files are kept. |
static void IG::Lib::SerializerBase::TestSerializationDto< TypeDto, Type > | ( | ISerializer | serializer, |
Type | serializedObject, | ||
string | filePath, | ||
bool | firstStep, | ||
bool | secondStep | ||
) | [inline, static] |
Test serialization performed by the specified serialization helper class. This test does not perform only serialization/deserialization, but also performs copying of an object to and from the corresponding DTO (Data Transfer Object). It is actually DTO that is serialized and deserialized. This function creates a test object, copies it to the corresponding DTO (Data Transfer object) of the specified type, serializes it and stores it to a file, then deserializes the DTO (instantiates a new object for the stored record), copies the contents of the DTO to a new object, creates a new object and copies data to it from the DTO, and serializes the DTO again and writes it into another file in the same directory, but with a modified name. Both files can then be compared in order to see if something was lost during conversions or serialization/deserialization.
TypeDto | Declared type of the DTO to that is used for storing and serializing object contents (state). The type must implements implement a default constructor. |
Type | Type of the object to be serialized/deserialized through corresponding DTO. |
serializer | Serialization helper object that is used for serialization. |
serializedObject | Object to be serialized. |
filePath | Name of the file to which serialized object si written. Another file is created in the same directory for storing deserialized/serialized object. |
<paparam name="firstStep">If false then the first step is not performed (serialization to a file). This is useful if we already have a file with serialized object, and we would like to change it ans observe how changes are reflected in the second file where deserialized/serialized object is stored.</paparam>
firstStep | If false then the second step is not (deserialization/serialization) performed. |
Type | : | class | |
TypeDto | : | SerializationDto<Type> | |
TypeDto | : | new() |
static void IG::Lib::SerializerBase::TestSerializationDto< TypeDto, Type, BaseType > | ( | ISerializer | serializer, |
Type | serializedObject, | ||
string | filePath, | ||
bool | firstStep, | ||
bool | secondStep | ||
) | [inline, static] |
Test serialization performed by the specified serialization helper class. This test does not perform only serialization/deserialization, but also performs copying of an object to and from the corresponding DTO (Data Transfer Object). It is actually the DTO that is serialized and deserialized. This function creates a test object, copies it to the corresponding DTO (Data Transfer object) of the specified type, serializes it and stores it to a file, then deserializes the DTO (instantiates a new object for the stored record), copies the contents of the DTO to a new object, creates a new object and copies data to it from the DTO, and serializes the DTO again and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost during conversions or serialization/deserialization. IMPORTANT REMARK: In most cases one will not need this function, but can use the variant with only two type parameters (BaseType omitted).
TypeDto | Type of the DTO to that is used for storing and serializing object contents (state). The type must implements implement a default constructor. |
Type | Type of the object to be serialized/deserialized through corresponding DTO. |
BaseType | Base type from which Type inherits. It can be the same as Type. Serializer is initialized throug Type and VaseType. |
serializer | Serialization helper object that is used for serialization. |
serializedObject | Object to be serialized. |
filePath | Name of the file to which serialized object is written. Another file is created in the same directory for storing deserialized/serialized object. |
<paparam name="firstStep">If false then the first step is not performed (serialization to a file). This is useful if we already have a file with serialized object, and we would like to change it ans observe how changes are reflected in the second file where deserialized/serialized object is stored.</paparam>
firstStep | If false then the second step is not (deserialization/serialization) performed. |
BaseType | : | class | |
Type | : | class | |
Type | : | BaseType | |
TypeDto | : | SerializationDtoBase | |
TypeDto | : | Type | |
TypeDto | : | BaseType | |
TypeDto | : | new() |
static void IG::Lib::SerializerBase::TestSerialization< SerializationTestClass > | ( | ISerializer | serializer, |
SerializationTestClass | serObject, | ||
string | filePath | ||
) | [inline, static] |
Test serialization performed by the specified serialization helper class. This function creates a test object, serializes it ans stores it to a file, then deserializes it (instantiates a new object for the stored record), and serializes that object and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost.
SerializationTestClass | Declared type of the object to be serialized. |
serializer | Serialization helper object that is used for serialization. |
serObject | Object to be serialized. |
filePath | Name of the file to which serialized object si written. Another file is created in the same directory for storing deserialized/serialized object. |
static void IG::Lib::SerializerBase::TestSerialization< TypeSer > | ( | ISerializer | serializer, |
TypeSer | serObject, | ||
string | filePath, | ||
bool | firstStep, | ||
bool | secondStep | ||
) | [inline, static] |
Test serialization performed by the specified serialization helper class. This function creates a test object, serializes it ans stores it to a file, then deserializes it (instantiates a new object for the stored record), and serializes that object and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost.
TypeSer | Declared type of the object to be serialized. Usually, TypeSer will be a type that implements ISerializer. |
serializer | Serialization helper object that is used for serialization. |
serObject | Object to be serialized. |
filePath | Name of the file to which serialized object si written. Another file is created in the same directory for storing deserialized/serialized object. |
<paparam name="firstStep">If false then the first step is not performed (serialization to a file). This is useful if we already have a file with serialized object, and we would like to change it ans observe how changes are reflected in the second file where deserialized/serialized object is stored.</paparam>
firstStep | If false then the second step is not (deserialization/serialization) performed. |
static void IG::Lib::SerializerBase::TestSerializationJSON | ( | string | filePath, |
object | serObject | ||
) | [inline, static] |
Test serialization performed by the specified serialization helper class. This function creates a test object, serializes it ans stores it to a file, then deserializes it (instantiates a new object for the stored record), and serializes that object and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost.
filePath | Name of the file to which serialized object si written. Another file is created in the same directory for storing deserialized/serialized object. |
serObject | >Object to be serialized. |
static void IG::Lib::SerializerBase::TestSerializationJSON | ( | string | filePath | ) | [inline, static] |
Test serialization performed by the JSon serializer. This function creates a test object, serializes it ans stores it to a file, then deserializes it (instantiates a new object for the stored record), and serializes that object and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost.
filePath | Path of te basic file used for saving a serialized object. |
static void IG::Lib::SerializerBase::TestType< T > | ( | T | obj | ) | [inline, static] |
Writes the type of the object passed as parameter in two ways: by using tpye parameter of the generic method and by using object's GetType() method. The object itself is not printed out.
T | Specified type of the object (as type parameter of the method). |
obj | Object whose type printed. |
static void IG::Lib::SerializerBase::TestType< T > | ( | T | obj, |
bool | printObject | ||
) | [inline, static] |
Writes the type of the object passed as parameter in two ways: by using tpye parameter of the generic method and by using object's GetType() method.
T | Specified type of the object (as type parameter of the method). |
obj | Object whose type printed. |
printObject | If true then the object itself is also printed out. |
static void IG::Lib::SerializerBase::ExampleTestType | ( | ) | [inline, static] |
Testing the type of the object within a generic method.