using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Soap;
[Serializable]
class Employee: ISerializable
{
int id;
string name;
string address;
public Employee(int id, string name, string address)
{
this.id = id;
this.name = name;
this.address = address;
}
public override string ToString()
{
return(String.Format("{0} {1} {2}", id, name, address));
}
Employee(SerializationInfo info, StreamingContext content)
{
id = info.GetInt32("id");
name = info.GetString("name");
address = info.GetString("address");
}
// called to save the object data
public void GetObjectData(SerializationInfo info, StreamingContext content)
{
info.AddValue("id", id);
info.AddValue("name", name);
info.AddValue("address", address);
}
}
class MainClass
{
public static void Main()
{
Employee employee = new Employee(15, "F", "B");
Stream streamWrite = File.Create("emp.dat");
IFormatter writer = new SoapFormatter();
writer.Serialize(streamWrite, employee);
streamWrite.Close();
Stream streamRead = File.OpenRead("emp.dat");
IFormatter reader = new SoapFormatter();
employee = (Employee) reader.Deserialize(streamRead);
streamRead.Close();
Console.WriteLine("Employee: {0}", employee);
}
}
Employee: 15 F B