Reader Level:
ARTICLE

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

Posted by Lajapathy Arun Articles | ASP.NET Programming April 21, 2012
In this article we are going to see how to serialize and deserialize an object as binary data using the binary formatter.
  • 1
  • 0
  • 16496

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

using System;
using System.Collections;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

Step 2: Usage

protected void Page_Load(object sender, EventArgs e)
{
    Employees emps = new Employees();

    emps.Add(new Employee("1", "Lajapathy"));
    emps.Add(new Employee("2", "Anand"));

    emps.Add(new Employee("3", "Sathiya"));
    emps.Add(new Employee("4", "Lakshmi"));
    emps.Add(new Employee("5", "Parthiban"));
 
    string pth = @"D:\Test.bin";
 
    //Serializing the collection
    Serialize(emps, pth);
 
    //Deserializing the collection
    Deserialize(pth);
}

Step 3: Serializing the Object using Binary Formatter

//Serializing the List
public void Serialize(Employees emps, String filename)
{
    //Create the stream to add object into it.
    System.IO.Stream ms = File.OpenWrite(filename); 
    //Format the object as Binary

    BinaryFormatter formatter = new BinaryFormatter();
    //It serialize the employee object
    formatter.Serialize(ms, emps);
    ms.Flush();
    ms.Close();
    ms.Dispose();
}

Step 4: Deserializing the Object using Binary Formatter

//Deserializing the List
public void Deserialize(String filename)
{
    //Format the object as Binary
    BinaryFormatter formatter = new BinaryFormatter();
 
    //Reading the file from the server
    FileStream fs = File.Open(filename, FileMode.Open);
 
    object obj = formatter.Deserialize(fs);
    Employees emps = (Employees)obj;
    fs.Flush();
    fs.Close();
    fs.Dispose(); 
    foreach (Employee employee in emps)
    {
       Response.Write(employee.Name + "<br/>");
    }
}

Step 5: Output Path of Serialization:

serialzation1.gif
Step 6:
Output of Deserialization:

serialzation2.gif

//Deserializing the List
public void Deserialize(String filename)
{
    //Format the object as Binary
    BinaryFormatter formatter = new BinaryFormatter();
 
    //Reading the file from the server
    FileStream fs = File.Open(filename, FileMode.Open);
 
    object obj = formatter.Deserialize(fs);
    Employees emps = (Employees)obj;
    fs.Flush();
    fs.Close();
    fs.Dispose();
 
    foreach (Employee employee in emps)
    {
        Response.Write(employee.Name + "<br/>");
    }
}

Copy & Paste Code Snippet

using System;
using System.Collections;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
 
namespace SampleApplication
{
    public partial class ObjectSerialization : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Employees emps = new Employees();
            emps.Add(new Employee("1", "Lajapathy"));
            emps.Add(new Employee("2", "Anand"));
            emps.Add(new Employee("3", "Sathiya"));

            emps.Add(new Employee("4", "Lakshmi"));
            emps.Add(new Employee("5", "Parthiban"));
 
            string pth = @"D:\Test.bin";
 
            //Serializing the collection
            Serialize(emps, pth);
 
            //Deserializing the collection
            Deserialize(pth);
        } 
        //Serializing the List
        public void Serialize(Employees emps, String filename)
        {
            //Create the stream to add object into it.
            System.IO.Stream ms = File.OpenWrite(filename);
 
            //Format the object as Binary
            BinaryFormatter formatter = new BinaryFormatter();
 
            //It serialize the employee object
            formatter.Serialize(ms, emps);
            ms.Flush();
            ms.Close();
            ms.Dispose();
        } 
        //Deserializing the List
        public void Deserialize(String filename)
        {
            //Format the object as Binary
            BinaryFormatter formatter = new BinaryFormatter();
 
            //Reading the file from the server
            FileStream fs = File.Open(filename, FileMode.Open); 
            object obj = formatter.Deserialize(fs);
            Employees emps = (Employees)obj;

            fs.Flush();
            fs.Close();
            fs.Dispose(); 
            foreach (Employee employee in emps)
            {
                Response.Write(employee.Name + "<br/>");
            }
        }
    } 
    //Classes
    [Serializable]
    public class Employee
    { 
        public Employee(String id, String name)
        {
            _ID = id;
            _Name = name;
        } 
        private String _ID = String.Empty;
        private String _Name = String.Empty; 
        public String ID
        {
            get
            {
                return _ID;

            set
            {
                _ID = value;
            }
        }
        public String Name
        {
            get
            {

                return _Name;
            }
            set
            {
                _Name = value;
            }
        }
    } 
    [Serializable]
    public class Employees : CollectionBase
    {
        //Constructor
        public Employees()
        { 
        }
 
        //Add function
        public void Add(Employee objT)
        {
            this.List.Add(objT);
        } 
        //Indexer
        public Employee this[int i]
        {
            get
            {
                return (Employee)this.List[i];
            }
            set
            {
                this.List.Add(value);
            }
        }
    }

}

Thanks for reading this article. Have a nice day.

COMMENT USING

Trending up