Serializing and Deserializing an Object as Binary Data Using Binary Formatter ASP.NET C#

In this article, we are going to see how to serialize and deserialize an object as binary data using the binary formatter.

Step 1: Used Namespace

  1. using System;  
  2. using System.Collections;  
  3. using System.IO;  
  4. using System.Runtime.Serialization.Formatters.Binary;
Step 2: Usage
  1. protected void Page_Load(object sender, EventArgs e)  
  2. {  
  3.     Employees emps = new Employees();  
  4.   
  5.     emps.Add(new Employee("1""Lajapathy"));  
  6.     emps.Add(new Employee("2""Anand"));  
  7.   
  8.     emps.Add(new Employee("3""Sathiya"));  
  9.     emps.Add(new Employee("4""Lakshmi"));  
  10.     emps.Add(new Employee("5""Parthiban"));  
  11.    
  12.     string pth = @"D:\Test.bin";  
  13.    
  14.     //Serializing the collection  
  15.     Serialize(emps, pth);  
  16.    
  17.     //Deserializing the collection  
  18.     Deserialize(pth);  
  19. } 

Step 3: Serializing the Object using Binary Formatter

  1. //Serializing the List  
  2. public void Serialize(Employees emps, String filename)  
  3. {  
  4.     //Create the stream to add object into it.  
  5.     System.IO.Stream ms = File.OpenWrite(filename);   
  6.     //Format the object as Binary  
  7.   
  8.     BinaryFormatter formatter = new BinaryFormatter();  
  9.     //It serialize the employee object  
  10.     formatter.Serialize(ms, emps);  
  11.     ms.Flush();  
  12.     ms.Close();  
  13.     ms.Dispose();  
  14. } 

Step 4: Deserializing the Object using Binary Formatter

  1. //Deserializing the List  
  2. public void Deserialize(String filename)  
  3. {  
  4.     //Format the object as Binary  
  5.     BinaryFormatter formatter = new BinaryFormatter();  
  6.    
  7.     //Reading the file from the server  
  8.     FileStream fs = File.Open(filename, FileMode.Open);  
  9.    
  10.     object obj = formatter.Deserialize(fs);  
  11.     Employees emps = (Employees)obj;  
  12.     fs.Flush();  
  13.     fs.Close();  
  14.     fs.Dispose();   
  15.     foreach (Employee employee in emps)  
  16.     {  
  17.        Response.Write(employee.Name + "<br/>");  
  18.     }  
  19. }
Step 5: Output Path of Serialization:

serialzation1.gif
Step 6:
Output of Deserialization:

serialzation2.gif

  1. //Deserializing the List  
  2. public void Deserialize(String filename)  
  3. {  
  4.     //Format the object as Binary  
  5.     BinaryFormatter formatter = new BinaryFormatter();  
  6.    
  7.     //Reading the file from the server  
  8.     FileStream fs = File.Open(filename, FileMode.Open);  
  9.    
  10.     object obj = formatter.Deserialize(fs);  
  11.     Employees emps = (Employees)obj;  
  12.     fs.Flush();  
  13.     fs.Close();  
  14.     fs.Dispose();  
  15.    
  16.     foreach (Employee employee in emps)  
  17.     {  
  18.         Response.Write(employee.Name + "<br/>");  
  19.     }  
  20. }

Copy & Paste Code Snippet

  1. using System;  
  2. using System.Collections;  
  3. using System.IO;  
  4. using System.Runtime.Serialization.Formatters.Binary;  
  5.    
  6. namespace SampleApplication  
  7. {  
  8.     public partial class ObjectSerialization : System.Web.UI.Page  
  9.     {  
  10.         protected void Page_Load(object sender, EventArgs e)  
  11.         {  
  12.             Employees emps = new Employees();  
  13.             emps.Add(new Employee("1""Lajapathy"));  
  14.             emps.Add(new Employee("2""Anand"));  
  15.             emps.Add(new Employee("3""Sathiya"));  
  16.   
  17.             emps.Add(new Employee("4""Lakshmi"));  
  18.             emps.Add(new Employee("5""Parthiban"));  
  19.    
  20.             string pth = @"D:\Test.bin";  
  21.    
  22.             //Serializing the collection  
  23.             Serialize(emps, pth);  
  24.    
  25.             //Deserializing the collection  
  26.             Deserialize(pth);  
  27.         }   
  28.         //Serializing the List  
  29.         public void Serialize(Employees emps, String filename)  
  30.         {  
  31.             //Create the stream to add object into it.  
  32.             System.IO.Stream ms = File.OpenWrite(filename);  
  33.    
  34.             //Format the object as Binary  
  35.             BinaryFormatter formatter = new BinaryFormatter();  
  36.    
  37.             //It serialize the employee object  
  38.             formatter.Serialize(ms, emps);  
  39.             ms.Flush();  
  40.             ms.Close();  
  41.             ms.Dispose();  
  42.         }   
  43.         //Deserializing the List  
  44.         public void Deserialize(String filename)  
  45.         {  
  46.             //Format the object as Binary  
  47.             BinaryFormatter formatter = new BinaryFormatter();  
  48.    
  49.             //Reading the file from the server  
  50.             FileStream fs = File.Open(filename, FileMode.Open);   
  51.             object obj = formatter.Deserialize(fs);  
  52.             Employees emps = (Employees)obj;  
  53.             fs.Flush();  
  54.             fs.Close();  
  55.             fs.Dispose();   
  56.             foreach (Employee employee in emps)  
  57.             {  
  58.                 Response.Write(employee.Name + "<br/>");  
  59.             }  
  60.         }  
  61.     }   
  62.     //Classes  
  63.     [Serializable]  
  64.     public class Employee  
  65.     {   
  66.         public Employee(String id, String name)  
  67.         {  
  68.             _ID = id;  
  69.             _Name = name;  
  70.         }   
  71.         private String _ID = String.Empty;  
  72.         private String _Name = String.Empty;   
  73.         public String ID  
  74.         {  
  75.             get  
  76.             {  
  77.                 return _ID;  
  78.   
  79.             set  
  80.             {  
  81.                 _ID = value;  
  82.             }  
  83.         }  
  84.         public String Name  
  85.         {  
  86.             get  
  87.             {  
  88.   
  89.                 return _Name;  
  90.             }  
  91.             set  
  92.             {  
  93.                 _Name = value;  
  94.             }  
  95.         }  
  96.     }   
  97.     [Serializable]  
  98.     public class Employees : CollectionBase  
  99.     {  
  100.         //Constructor  
  101.         public Employees()  
  102.         {   
  103.         }  
  104.    
  105.         //Add function  
  106.         public void Add(Employee objT)  
  107.         {  
  108.             this.List.Add(objT);  
  109.         }   
  110.         //Indexer  
  111.         public Employee this[int i]  
  112.         {  
  113.             get  
  114.             {  
  115.                 return (Employee)this.List[i];  
  116.             }  
  117.             set  
  118.             {  
  119.                 this.List.Add(value);  
  120.             }  
  121.         }  
  122.     }  
  123. } 

Thanks for reading this article. Have a nice day.