Definition: "Serialization is the process of going from in-memory representation of an object to a disk-based format which can be in any form like binary, JSON, BSON, XML, etc. Deserialization is the reverse process, in which you recreate an object from disk storage and store it in RAM"
Purpose: "This is mainly used in document store, ORM style databases, storing config files etc. The main benefit is the speed in populating an object as opposed to querying multiple tables in the case of database storage."
Serialization saves object state so that the object can be persisted and recreated without the need for inserting/updating one or more records across several tables in an RDBMS.
.NET Example: The following is an example of serialization of a simple C# object to XML, and deserialization from the XML back into the same C# object:
GitHub: https://github.com/Radagast27/SerializationDeserializationSimpl
Quote Attribution: Mehdi Gholam
References:
https://stackoverflow.com/questions/11447529/convert-an-object-to-an-xml-string?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
https://www.codeproject.com/Questions/277995/What-is-serialization-and-deserialization-in-cshar
https://stackoverflow.com/questions/3356976/how-to-serialize-deserialize-simple-classes-to-xml-and-back
Purpose: "This is mainly used in document store, ORM style databases, storing config files etc. The main benefit is the speed in populating an object as opposed to querying multiple tables in the case of database storage."
Serialization saves object state so that the object can be persisted and recreated without the need for inserting/updating one or more records across several tables in an RDBMS.
.NET Example: The following is an example of serialization of a simple C# object to XML, and deserialization from the XML back into the same C# object:
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
namespace SerializationDeserializationSimpl
{
class Program
{
static void Main(string[] args)
{
Album album = new Album(){ AlbumId = 1, AlbumName = "James Vincent McMorrow", ArtistName="Post Tropical", CurrentBillboardRank=1045, HighestBillboardRank=102, SoundScanUnits=207000};
Console.WriteLine("Original object in memory:");
album.WriteSummary();
Console.WriteLine("Press Enter to Serialize this object to XML");
Console.ReadLine();
//Serialize it to XML file (disk) form
var serializer = new XmlSerializer(album.GetType());
using (var writer = XmlWriter.Create("album.xml"))
{
serializer.Serialize(writer, album); //serializes to XmlWriter for later deserialization back into Album obj
var sWriter = new StringWriter();
serializer.Serialize(sWriter, album); //serializes to StringWriter for display in the Console via WriteLine
Console.WriteLine(sWriter.ToString());
Console.WriteLine("------------------------------------");
Console.WriteLine("------------------------------------");
Console.WriteLine("------------------------------------");
}
Console.WriteLine("Serialization to XML sucessfull!");
Console.WriteLine("------------------------------------");
album.WriteSummary();
Console.WriteLine("------------------------------------");
Console.WriteLine("Press Enter to Deserialize from the XML");
Console.ReadLine();
//Deserialize from that XML back into object (RAM) form
using (var reader = XmlReader.Create("album.xml"))
{
var albumDeserialized = (Album)serializer.Deserialize(reader);
Console.WriteLine("Deserialization from XML sucessfull!");
Console.WriteLine("------------------------------------");
albumDeserialized.WriteSummary();
Console.WriteLine("------------------------------------");
Console.WriteLine("Press any key to exit");
Console.ReadLine();
}
}
}
public class Album
{
public int AlbumId;
public string AlbumName;
public string ArtistName;
public int SoundScanUnits;
public int CurrentBillboardRank;
public int HighestBillboardRank;
public void WriteSummary()
{
Console.WriteLine("AlbumId: " + AlbumId);
Console.WriteLine("Album: " + AlbumName);
Console.WriteLine("Artist: " + ArtistName);
Console.WriteLine("SoundScanUnits: " + SoundScanUnits);
Console.WriteLine("CurrentBillboardRank: " + CurrentBillboardRank);
Console.WriteLine("HighestBillboardRank: " + HighestBillboardRank);
}
}
}
Program.cs
Console Output
GitHub: https://github.com/Radagast27/SerializationDeserializationSimpl
Quote Attribution: Mehdi Gholam
References:
https://stackoverflow.com/questions/11447529/convert-an-object-to-an-xml-string?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
https://www.codeproject.com/Questions/277995/What-is-serialization-and-deserialization-in-cshar
https://stackoverflow.com/questions/3356976/how-to-serialize-deserialize-simple-classes-to-xml-and-back
No comments:
Post a Comment