Introduction
The following code sample shows the implementation of SoapFormatter. The code defines MySoapFormatter to demonstrate serialization and deserialization using the SoapFormatter class. The code creates an object of the List collection named Customers to store the Customer's name and adds four words to the group. The code uses the SoapFormatter class to write the state of the List object to a file named Customer.dat using the Serialize method of the BinaryFormattter class. After serializing the list, the code restores the serialized data from the Customer.dat file back to the form of an object using the Deserialize method of the SoapFormatter class and creates a new list named Customers2. The code finally displays the content of the newly created list, Customer2, to check whether or not the data is deserialized in the correct format.
Example
using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Formatters.Soap;
class MySoapFormatter
{
static void Main(string[] args)
{
List<string> Customers = new List<string>
{
"Kailsh",
"Ramsharan",
"Panchanan",
"Roupya Manjari"
};
FileStream FS = new FileStream("Customer.soap", FileMode.Create);
Serialize(Customers, FS);
FS.Flush();
FS.Close();
FS = new FileStream("Customer.soap", FileMode.Open);
List<string> Customers2 = Deserialize(FS);
FS.Close();
if (Customers2 != null)
{
foreach (string Customer in Customers2)
{
Console.WriteLine(Customer);
}
}
Console.ReadLine();
}
public static void Serialize(List<string> customers, FileStream fs)
{
SoapFormatter SF = new SoapFormatter();
try
{
SF.Serialize(fs, customers);
Console.WriteLine("Successfully Serialized");
}
catch (Exception ex)
{
Console.WriteLine("Unable to Serialize from binary format");
Console.WriteLine(ex.Message);
}
}
public static List<string> Deserialize(FileStream fs)
{
SoapFormatter SF = new SoapFormatter();
List<string> LS = null;
try
{
LS = (List<string>)SF.Deserialize(fs);
Console.WriteLine("Successfully Deserialized");
}
catch (Exception ex)
{
Console.WriteLine("Unable to Deserialize from binary format");
Console.WriteLine(ex.Message);
}
return LS;
}
}