Universe Guide
HomeAliensConstellationsTelevision and Films ListFact ListGames ListWarcraftSearchTwitterFacebookComments

Serialization - Binary

In simple terms, Serialization is the process of saving and then loading an object back into memory. Objects are serialized to a file rather than a database so are personal based. There are three types of Serialization, they are :- Binary, XML and Soap. This webpage deals only with Binary Serialization for the moment. Before you can even start using serialization, you need to add the respective namespaces which are :-
 using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.IO;
All classes that are to be serialized must be identified by a
[Serializable] class clsPerson { public clsPerson(string strForename, string strSurname) { Forename = strForename; Surname = strSurname; } [ [OnDeserialized] public void DisplayName(System.Runtime.Serialization.StreamingContext context) { Console.WriteLine("Hello {0} {1}", Forename, Surname); } public string Forename { get; set; } public string Surname { get; set; } [OptionalField(VersionAdded = 2)] string m_Department; public string Department { get { return m_Department; } set { m_Department = value; } } }
In the above example, you will have noticed [OnDeserialized], this means that that function will automatically be called once the object has been deserialized from the database. The other qualifiers are :-

QualifierExplanation[OnSerializing]Function called before the Serialization has taken place.[OnSerialized]Function called after the Serialization has taken place.[OnDeserializing]Function called before the Deerialization has taken place.[OnDeserialized]Function called after the Deserialization has taken place.[OptionalField]This allows you to deserialize an older version of serialised data into a newer version of the object without throwing an error. You cannot use this attribute on autoimplemented properties, you must define the variable and attribute the long way.[OnDeserialized]Function called after the Deserialization has taken place.[NonSerialized]The field will not be serialized.

Now comes the fun part, the serialization which is really easy. In short, you define the formatter then write the object to a stream. If you looked at the file that is created, you will find the information is relatively easy to understand.

 static void Main(string[] args) { //Create Instance of object to be serialized. clsPerson Person = new clsPerson("Mister","Developer"); // Create serializer that will do the work. BinaryFormatter binFormat = new BinaryFormatter(); // Open a stream where the serialized file will be stored. using(Stream fptr = new FileStream("C:\\temp\\user.dat", FileMode.Create, FileAccess.Write, FileShare.None)) { binFormat.Serialize(fptr,Person); } Person = null; // Deserialize the object. using (Stream fptr = File.OpenRead("c:\\temp\\user.dat")) { // As we have an [OnDeserialized] function, the forename + surname will be displayed on screen. Person = (clsPerson)binFormat.Deserialize(fptr); } Console.ReadKey(); }

Related Pages of Interest :-

Comments and Questions

There's no register feature and no need to give an email address if you don't need to. All messages will be reviewed before being displayed. Comments may be merged or altered slightly such as if an email address is given in the main body of the comment.

This website is using cookies. More info. That's Fine