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.
Reader Level:

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.

Login to add your contents and source code to this article
post comment
     
COMMENT USING
PREMIUM SPONSORS
DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and add new content to existing PDF documents from within your applications.
Get Career Advice from Experts
SPONSORED BY
  • PDF reports have never been easier to create. With our included WYSIWYG Designer, you can layout your reports, set up your data source and let DynamicPDF ReportWriter do the rest.
Join a Chapter