Serialization is the process of converting an object into a stream of bytes in order to store it or transmit it over a network. Deserialization is the process of converting that stream of bytes back into an object. In C#, serialization and deserialization are commonly used when working with XML and JSON data, as well as when sending and receiving data over a network.
To serialize an object in C#, you can use the built-in XmlSerializer or JsonSerializer classes. Here is an example of serializing an object into XML format:
using System; using System.IO; using System.Xml.Serialization; // Define a class to be serialized public class Person { public string Name { get; set; } public int Age { get; set; } } class Program { static void Main() { // Create an instance of the Person class Person person = new Person { Name = "Alice", Age = 30 }; // Create a FileStream to write the serialized data to a file FileStream fs = new FileStream("person.xml", FileMode.Create); // Create an XmlSerializer object XmlSerializer serializer = new XmlSerializer(typeof(Person)); // Serialize the object and write it to the file serializer.Serialize(fs, person); // Close the file stream fs.Close(); } }
To deserialize the XML data back into an object, you can use the XmlSerializer class as well. Here is an example:
using System; using System.IO; using System.Xml.Serialization; class Program { static void Main() { // Create a FileStream to read the serialized data from a file FileStream fs = new FileStream("person.xml", FileMode.Open); // Create an XmlSerializer object XmlSerializer serializer = new XmlSerializer(typeof(Person)); // Deserialize the object from the file Person person = (Person)serializer.Deserialize(fs); // Close the file stream fs.Close(); // Display the deserialized object Console.WriteLine($"Name: {person.Name}, Age: {person.Age}"); } }
Serialization and deserialization are powerful tools in C# that allow you to easily store and transmit data in a structured format. By using serialization, you can save time and effort when working with complex data structures in your applications.
Top comments (0)