EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

C# Object Serialization

Home » Software Development » Software Development Tutorials » C# Tutorial » C# Object Serialization

C# Object Serialization

Introduction to C# Object Serialization

To convert an object in a sequence or stream of bytes, the process used is called serialization. For the transmission of an object to the databases, file, or memory we use serialization. For the exact recreation or recovery of an object when required, serialization plays a crucial role as it saves the state of an object. Through this statement, we meant that using a web service one can transfer an object to any remote location, by a simple transfer of an object from one domain to another. The reverse process of serialization is known as de-serialization as it is the process of the conversion of a serialized byte sequence into an object.

C# Object Serialization Syntax:

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

For the serialization of the object in C#, an attribute called [Serializable]. If the attribute is not mentioned in a rightful manner, then at the run time a SerializableException is thrown.

Below is the syntax used for serialization of object in C#:

public static void SomeData()
{
string aoo = "Heyoo! Thank you for visiting us....";
FileStream boo = new FileStream(@"D:\EduCBA.txt", FileMode.Create,FileAccess.Write, FileShare.None);
BinaryFormatter coo = new BinaryFormatter();
coo.Serialize(boo, aoo);
boo.Close();
}

C# Object De-serialization Syntax:

Below is the syntax used for de-serialization of object in C#:

public static void AnotherData()
{
FileStream boo = new FileStream(@"D:\EduCBA.txt", FileMode.Open,FileAccess.Read, FileShare.Read);
BinaryFormatter doo = new BinaryFormatter();
string eoo = "";
eoo = (string)doo.Deserialize(boo);
boo.Close();
Console.WriteLine("EduCBA’s-se-ria-li-za-tion-&-de-se-ria-li-za-tion-in-C#-exam-ple");
Console.WriteLine("\n");
Console.WriteLine(eoo);
}

Popular Course in this category
C# Training Program (6 Courses, 17 Projects)6 Online Courses | 17 Hands-on Project | 89+ Hours | Verifiable Certificate of Completion | Lifetime Access
4.6 (8,400 ratings)
Course Price

View Course

Related Courses
ASP.NET Training (8 Courses, 19 Projects).NET Training Program (4 Courses, 19 Projects)

C# Object Serialization working with Examples

Let us discuss examples of C# Object Serialization.

Example #1

In the code below, we have to serialize the class EduCBA so we have used [Serializable]. To stop any error from occurrence after execution of the code, one should mention this attribute. After mentioning the attribute for the class that we want to serialize, we have described the four properties of our class that are “CourseName1” a string and “CoursePrice1” an integer value and similarly, “CourseName2” a string and “CoursePrice2” an integer value. To open a file “E:\EDUCBA.txt” in the read-only mode, an object hello is created an object “hello” and in the end, we have displayed the “yum” using the properties we had mentioned earlier.

Code:

using System;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;
namespace Careerplan
{
[Serializable] class EduCBA
{
public String CourseName1;
public int CoursePrice1;
public String CourseName2;
public int CoursePrice2;
static void Main(string[] rahul)
{
EduCBA yum = new EduCBA();
yum.CourseName1 = "C# Training";
yum.CoursePrice1 = 25900;
yum.CourseName2 = "C++ Training";
yum.CoursePrice2 = 28490;
IFormatter formatter = new BinaryFormatter();
Stream hello = new FileStream(@"E:\EDUCBA.txt",FileMode.Create,FileAccess.Write, FileShare.None);
formatter.Serialize(hello, yum);
hello.Close();
hello = new FileStream(@"E:\EDUCBA.txt",FileMode.Open,FileAccess.Read, FileShare.Read);
hello.Close();
Console.WriteLine(yum.CourseName1);
Console.WriteLine(yum.CoursePrice1);
Console.WriteLine(yum.CourseName2);
Console.WriteLine(yum.CoursePrice2);
Console.ReadKey();
}
}
}

Output:

C# Object Serialization 1

Example #2

In the code below, we have to serialize the class CBA so we have used [Serializable]. To stop any error from occurrence after execution of the code, one should mention this attribute. After mentioning the attribute for the class that we want to serialize, we have described the nine properties of our class that are “student_ID1” an integer value and “student_name1” a string and “CGPA1” a double value that means it contains number values with decimal points and similarly “student_ID2” an integer value and “student_name2” a string and “CGPA2” a double value and “student_ID3” value is an integer and “student_name3” a string and “CGPA3” a double value. To open a file “E:\EDUCBA.txt” in the read-only mode, an object hello is created an object “learn” and in the end, we have displayed the “ID” using the properties we had mentioned earlier within different rows and text mentioning what the data actually represents.

Code:

using System;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using System.Text;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;
namespace StudentData
{
[Serializable] class CBA
{
public int student_ID1;
public String student_name1;
public double CGPA1;
public int student_ID2;
public String student_name2;
public double CGPA2;
public int student_ID3;
public String student_name3;
public double CGPA3;
static void Main(string[] annie)
{
CBA ID = new CBA();
ID.student_ID1 = 15023456;
ID.student_name1 = "Rahul Kashyap";
ID.CGPA1 = 9.5;
ID.student_ID2 = 18023950;
ID.student_name2 = "Ankush Rajput";
ID.CGPA2 = 8.7;
ID.student_ID3 = 19084653;
ID.student_name3 = "Aadarsh Rajput";
ID.CGPA3 = 7.5;
IFormatter eduCBA = new BinaryFormatter();
Stream learn = new FileStream(@"E:\EDUCBA.txt",FileMode.Create,FileAccess.Write, FileShare.None);
eduCBA.Serialize(learn, ID);
learn.Close();
learn = new FileStream(@"E:\EDUCBA.txt",FileMode.Open,FileAccess.Read, FileShare.Read);
learn.Close();
Console.Write("\n");
Console.Write("Welcome! Desired data is below");
Console.Write("\n");
Console.Write("\n");
Console.Write("::TABLE::");
Console.Write("\n");
Console.Write("\n");
Console.Write("::ROW1::");
Console.WriteLine("Student_ID: {0}", ID.student_ID1);
Console.Write("::ROW2::");
Console.WriteLine("Student_Name: {0}", ID.student_name1);
Console.Write("::ROW3::");
Console.WriteLine("CGPA Scored: {0}", ID.CGPA1);
Console.Write("\n");
Console.Write("\n");
Console.Write("::ROW1::");
Console.WriteLine("Student_ID: {0}", ID.student_ID2);
Console.Write("::ROW2::");
Console.WriteLine("Student_Name: {0}", ID.student_name2);
Console.Write("::ROW3::");
Console.WriteLine("CGPA Scored: {0}", ID.CGPA2);
Console.Write("\n");
Console.Write("\n");
Console.Write("::ROW1::");
Console.WriteLine("Student_ID: {0}", ID.student_ID3);
Console.Write("::ROW2::");
Console.WriteLine("Student_Name: {0}", ID.student_name3);
Console.Write("::ROW3::");
Console.WriteLine("CGPA Scored: {0}", ID.CGPA3);
}
}
}

Output:

C# Object Serialization 2

Example #3

In the example below, for the serialization of an object firstly we have created a stream ( FileStream) object “boo” then we have created an object for BinaryFormatter object “coo” then we have called “coo.Serialize(boo, aoo)” which is a BinaryFormatter.Serialize() method for the serialization of an object in C#.

Similarly for the de-serialization of an object firstly we have created a stream ( FileStream) object “boo” which is used for reading the serialized output then we have created an object for BinaryFormatter object “doo” then we have called “doo. Deserialize(boo)” which is a BinaryFormatter.Deserialize() method for the de-serialization of an object in C#.

Code:

using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace EDUCBA
{
class Rahul
{
public static void SomeData()
{
string aoo = "Heyoo! Thank you for visiting us....";
FileStream boo = new FileStream(@"D:\EduCBA.txt", FileMode.Create,FileAccess.Write, FileShare.None);
BinaryFormatter coo = new BinaryFormatter();
coo.Serialize(boo, aoo);
boo.Close();
}
public static void AnotherData()
{
FileStream boo = new FileStream(@"D:\EduCBA.txt", FileMode.Open,FileAccess.Read, FileShare.Read);
BinaryFormatter doo = new BinaryFormatter();
string eoo = "";
eoo = (string)doo.Deserialize(boo);
boo.Close();
Console.WriteLine("EduCBA’s-se-ria-li-za-tion-&-de-se-ria-li-za-tion-in-C#-exam-ple");
Console.WriteLine("\n");
Console.WriteLine(eoo);
}
static void Main(string[] foo)
{
SomeData();
AnotherData();
Console.ReadLine();
}
}
}

Output:

example 3

Conclusion

On the basis of above discussion, we understood the serialization of an object in C# as well as de-serialization of the same object in C#. We also understood the importance of serialization. We have discussed various examples related to C# serialization and C# de-serialization along with the syntaxes of both.

Recommended Articles

This is a guide to C# Object Serialization. Here we also discuss the introduction, syntax, parameters, and C# Object Serialization working with different examples. You may also have a look at the following articles to learn more –

  1. C# DirectoryInfo
  2. C# Base
  3. C# StackOverflowException
  4. C# Stopwatch

All in One Software Development Bundle (600+ Courses, 50+ projects)

600+ Online Courses

50+ projects

3000+ Hours

Verifiable Certificates

Lifetime Access

Learn More

0 Shares
Share
Tweet
Share
Primary Sidebar
C sharp Tutorial
  • Basic
    • Uses Of C#
    • C# Versions
    • C# Data Types
    • Variables in C#
    • Namespaces in C#
    • C# Compilers
    • C# Keywords
    • Iterators in C#
    • Objects in C#
    • C# Object Dispose
    • C# object to XML
    • C# check object type
    • C# Object Serialization
    • Pointers in C#
    • C# Literals
    • C# Commands
    • C# Custom Attribute
    • Type Casting in C#
    • String vs String C#
    • C# Struct vs Class
  • Operators
    • Logical Operators in C#
    • Conditional Operators in C#
    • Bitwise Operators in C#
    • C# OR Operator
    • C# Ternary Operators
    • Operator Precedence in C#
  • Control Statement
    • C# if Statement
    • Else If in C#
    • Continue in C#
    • Break in C#
    • Switch Statement in C#
    • Goto Statement in C#
  • Loops
    • C# For Loop
    • C# While Loop
    • C# do-while loop
    • C# foreach Loop
  • Arrays
    • Arrays in C#
    • 2D Arrays in C#
    • C# Jagged Arrays
    • String Array in C#
    • C# Multidimensional Arrays
  • Constructor and Destructor
    • Constructor in C#
    • Copy Constructor in C#
    • Static Constructor in C#
    • Destructor in C#
  • overloading and overrideing
    • Overloading and Overriding in C#
    • Overloading in C#
    • Overriding in C#
    • Method Overloading in C#
    • Method Overriding in C#
    • Operator Overloading in C#
  • Functions
    • C# Functions
    • C# String Functions
    • Math Functions in C#
    • Recursive Function in C#
    • C# Anonymous Functions
    • C# Local Functions
    • Enum in C#
    • Trim() in C#
    • clone() in C#
    • C# random
    • C# String Format()
    • C# String Interpolation
    • C# StartsWith()
    • C# String IndexOf()
    • DateTime in C#
    • C# Nullable
    • C# nameof
    • C# checked
    • C# String PadLeft
    • Convert String to Double in C#
    • Convert int to String C#
    • String to Date C#
    • C# intern()
    • C# Stopwatch
    • C# DirectoryInfo
    • C# Compare()
    • C# Base
    • C# SOAP
    • Lock in C#
  • Advanced
    • Inheritance in C#
    • Exception Handling in C#
    • Types of Exception in C#
    • C# FileNotFoundException
    • C# NullReferenceException
    • C# OutOfMemoryException
    • C# StackOverflowException
    • Custom Exception in C#
    • What is Multithreading in C#
    • C# finally
    • C# System.IO
    • What is StringBuilder in C#
    • DataReader C#
    • BinaryWriter in C#
    • C# BinaryReader
    • TextWriter in C#
    • TextReader in C#
    • C# StringReader
    • C# StringWriter
    • C# StreamReader
    • C# StreamWriter
    • C# FileInfo
    • What is Design Pattern in C#?
    • Multithreading in C#
    • Sorting in C#
    • Bubble Sort in C#
    • C# SortedList
    • C# SortedSet
    • C# SortedDictionary
    • Abstract Class in C#
    • Access Modifiers in C#
    • C# Generics
    • Deserialization in C#
    • C# Thread
    • C# Thread Join
    • C# Thread Sleep
    • C# Thread Synchronization
    • C# Class
    • Sealed in C#
    • Sealed Class in C#
    • Polymorphism in C#
    • C# Call By Reference
    • Virtual Keyword in C# 
    • Yield Keyword in C#
    • Regular Expression in C#
    • C# Lambda Expression
    • C# Predicate
    • Convert Object to JSON C#
    • Checkbox in C#
    • C# MessageBox
    • Collections in C#
    • List in C#
    • C# LinkedList
    • Listbox in C#
    • Protected in C#
    • C# EventHandler
    • Private in C#
    • this Keyword in C#
    • Static Keyword in C#
    • C# Out Parameter
    • Assert in C#
    • C# Delegates
    • C# Interface
    • Generics in C#
    • Timer in C#
    • C# Serialization
    • Metadata in C#
    • C# Stack
    • C# Using Static
    • Queue in C#
    • C# File.Exists
    • C# Tuples
    • C# Create JSON Object
    • Partial in C#
    • C# readonly
    • C# Action Delegate
    • C# Await Async
    • C# Dictionary
    • IEnumerable C#
    • C# Data Grid View
    • C# Dynamic
    • Web Services in C#
    • C# Pattern Matching
    • C# Extension Methods
    • C# XmlSerializer
  • Programs
    • Patterns in C#
    • Swapping in C#
    • Palindrome in C#
    • Factorial in C#
    • Fibonacci Series in C#
    • Random Number Generator in C#
    • Prime Numbers in C#
    • Armstrong Number in C#
    • Reverse String in C#
  • Interview questions
    • C# Interview Questions and Answers
    • C# OOP Interview Questions
    • C# Design Pattern Interview Questions

Related Courses

C# Certification Training

ASP.NET Course

.NET Course

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2020 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you
Book Your One Instructor : One Learner Free Class

Let’s Get Started

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

Special Offer - C# Certification Training Learn More