Network C# Tutorial

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