<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FFile_Stream%2FSerialization</id>
		<title>Csharp/C Sharp/File Stream/Serialization - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FFile_Stream%2FSerialization"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/File_Stream/Serialization&amp;action=history"/>
		<updated>2026-04-29T21:21:23Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/File_Stream/Serialization&amp;diff=1288&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/File_Stream/Serialization&amp;diff=1288&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/File_Stream/Serialization&amp;diff=1289&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/File_Stream/Serialization&amp;diff=1289&amp;oldid=prev"/>
				<updated>2010-05-26T11:45:34Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Collection Serialization==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.Runtime.Serialization.Formatters.Soap;&lt;br /&gt;
using System.Runtime.Serialization.Formatters.Binary;&lt;br /&gt;
class MainClass&lt;br /&gt;
{&lt;br /&gt;
    private static void BinarySerialize(ArrayList list)&lt;br /&gt;
    {&lt;br /&gt;
        using (FileStream str = File.Create(&amp;quot;people.bin&amp;quot;))&lt;br /&gt;
        {&lt;br /&gt;
            BinaryFormatter bf = new BinaryFormatter();&lt;br /&gt;
            bf.Serialize(str, list);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    private static ArrayList BinaryDeserialize()&lt;br /&gt;
    {&lt;br /&gt;
        ArrayList people = null;&lt;br /&gt;
        using (FileStream str = File.OpenRead(&amp;quot;people.bin&amp;quot;))&lt;br /&gt;
        {&lt;br /&gt;
            BinaryFormatter bf = new BinaryFormatter();&lt;br /&gt;
            people = (ArrayList)bf.Deserialize(str);&lt;br /&gt;
        }&lt;br /&gt;
        return people;&lt;br /&gt;
    }&lt;br /&gt;
    private static void SoapSerialize(ArrayList list)&lt;br /&gt;
    {&lt;br /&gt;
        using (FileStream str = File.Create(&amp;quot;people.soap&amp;quot;))&lt;br /&gt;
        {&lt;br /&gt;
            SoapFormatter sf = new SoapFormatter();&lt;br /&gt;
            sf.Serialize(str, list);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    private static ArrayList SoapDeserialize()&lt;br /&gt;
    {&lt;br /&gt;
        ArrayList people = null;&lt;br /&gt;
        using (FileStream str = File.OpenRead(&amp;quot;people.soap&amp;quot;))&lt;br /&gt;
        {&lt;br /&gt;
            SoapFormatter sf = new SoapFormatter(); &lt;br /&gt;
            people = (ArrayList)sf.Deserialize(str);&lt;br /&gt;
        }&lt;br /&gt;
        return people;&lt;br /&gt;
    }&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        ArrayList people = new ArrayList();&lt;br /&gt;
        people.Add(&amp;quot;G&amp;quot;);&lt;br /&gt;
        people.Add(&amp;quot;L&amp;quot;);&lt;br /&gt;
        people.Add(&amp;quot;A&amp;quot;);&lt;br /&gt;
        BinarySerialize(people);&lt;br /&gt;
        SoapSerialize(people);&lt;br /&gt;
        ArrayList binaryPeople = BinaryDeserialize();&lt;br /&gt;
        ArrayList soapPeople = SoapDeserialize();&lt;br /&gt;
        Console.WriteLine(&amp;quot;Binary people:&amp;quot;);&lt;br /&gt;
        foreach (string s in binaryPeople)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;\t&amp;quot; + s);&lt;br /&gt;
        }&lt;br /&gt;
        Console.WriteLine(&amp;quot;\nSOAP people:&amp;quot;);&lt;br /&gt;
        foreach (string s in soapPeople)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;\t&amp;quot; + s);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==C# Serialization ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
A Programmer&amp;quot;s Introduction to C# (Second Edition)&lt;br /&gt;
by Eric Gunnerson&lt;br /&gt;
Publisher: Apress  L.P.&lt;br /&gt;
ISBN: 1-893115-62-3&lt;br /&gt;
*/&lt;br /&gt;
// 32 - .NET Frameworks Overview\Serialization&lt;br /&gt;
// copyright 2000 Eric Gunnerson&lt;br /&gt;
// file=serial.cs&lt;br /&gt;
// compile with: csc serial.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.Runtime.Serialization;&lt;br /&gt;
using System.Runtime.Serialization.Formatters.Binary;&lt;br /&gt;
using System.Runtime.Serialization.Formatters.Soap;&lt;br /&gt;
public class FrameworksOverviewSerialization&lt;br /&gt;
{&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        MyRow row = new MyRow();&lt;br /&gt;
        row.Add(new MyElement(&amp;quot;Gumby&amp;quot;));&lt;br /&gt;
        row.Add(new MyElement(&amp;quot;Pokey&amp;quot;));&lt;br /&gt;
        &lt;br /&gt;
        Console.WriteLine(&amp;quot;Initial value&amp;quot;);&lt;br /&gt;
        Console.WriteLine(&amp;quot;{0}&amp;quot;, row);&lt;br /&gt;
        &lt;br /&gt;
        // write to binary, read it back&lt;br /&gt;
        Stream streamWrite = File.Create(&amp;quot;MyRow.bin&amp;quot;);&lt;br /&gt;
        BinaryFormatter binaryWrite = new BinaryFormatter();&lt;br /&gt;
        binaryWrite.Serialize(streamWrite, row);&lt;br /&gt;
        streamWrite.Close();&lt;br /&gt;
        &lt;br /&gt;
        Stream streamRead = File.OpenRead(&amp;quot;MyRow.bin&amp;quot;);&lt;br /&gt;
        BinaryFormatter binaryRead = new BinaryFormatter();&lt;br /&gt;
        MyRow rowBinary = (MyRow) binaryRead.Deserialize(streamRead);&lt;br /&gt;
        streamRead.Close();&lt;br /&gt;
        &lt;br /&gt;
        Console.WriteLine(&amp;quot;Values after binary serialization&amp;quot;);&lt;br /&gt;
        Console.WriteLine(&amp;quot;{0}&amp;quot;, rowBinary);&lt;br /&gt;
        &lt;br /&gt;
        // write to SOAP (XML), read it back&lt;br /&gt;
        streamWrite = File.Create(&amp;quot;MyRow.xml&amp;quot;);&lt;br /&gt;
        SoapFormatter soapWrite = new SoapFormatter();&lt;br /&gt;
        soapWrite.Serialize(streamWrite, row);&lt;br /&gt;
        streamWrite.Close();&lt;br /&gt;
        &lt;br /&gt;
        streamRead = File.OpenRead(&amp;quot;MyRow.xml&amp;quot;);&lt;br /&gt;
        SoapFormatter soapRead = new SoapFormatter();&lt;br /&gt;
        MyRow rowSoap = (MyRow) soapRead.Deserialize(streamRead);&lt;br /&gt;
        streamRead.Close();&lt;br /&gt;
        &lt;br /&gt;
        Console.WriteLine(&amp;quot;Values after SOAP serialization&amp;quot;);&lt;br /&gt;
        Console.WriteLine(&amp;quot;{0}&amp;quot;, rowSoap);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
[Serializable]&lt;br /&gt;
public class MyElement&lt;br /&gt;
{&lt;br /&gt;
    public MyElement(string name)&lt;br /&gt;
    {&lt;br /&gt;
        this.name = name;&lt;br /&gt;
        this.cacheValue = 15;&lt;br /&gt;
    }&lt;br /&gt;
    public override string ToString()&lt;br /&gt;
    {&lt;br /&gt;
        return(String.Format(&amp;quot;{0}: {1}&amp;quot;, name, cacheValue));&lt;br /&gt;
    }&lt;br /&gt;
    string name;&lt;br /&gt;
    // this field isn&amp;quot;t persisted.&lt;br /&gt;
    [NonSerialized]&lt;br /&gt;
    int cacheValue;&lt;br /&gt;
}&lt;br /&gt;
[Serializable]&lt;br /&gt;
public class MyRow&lt;br /&gt;
{&lt;br /&gt;
    public void Add(MyElement my)&lt;br /&gt;
    {&lt;br /&gt;
        row.Add(my);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public override string ToString()&lt;br /&gt;
    {&lt;br /&gt;
        string temp = null;&lt;br /&gt;
        foreach (MyElement my in row)&lt;br /&gt;
        temp += my.ToString() + &amp;quot;\n&amp;quot;; &lt;br /&gt;
        return(temp);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    ArrayList row = new ArrayList();    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Deserialize==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Runtime.Serialization;&lt;br /&gt;
using System.Runtime.Serialization.Formatters.Binary;&lt;br /&gt;
[Serializable]&lt;br /&gt;
class Employee : ISerializable {&lt;br /&gt;
    private string name;&lt;br /&gt;
    private int age;&lt;br /&gt;
    private string address;&lt;br /&gt;
    public Employee(string name, int age, string address) {&lt;br /&gt;
        this.name = name;&lt;br /&gt;
        this.age = age;&lt;br /&gt;
        this.address = address;&lt;br /&gt;
    }&lt;br /&gt;
    private Employee(SerializationInfo info, StreamingContext context) {&lt;br /&gt;
        name = info.GetString(&amp;quot;Name&amp;quot;);&lt;br /&gt;
        age = info.GetInt32(&amp;quot;Age&amp;quot;);&lt;br /&gt;
        try {&lt;br /&gt;
            address = info.GetString(&amp;quot;Address&amp;quot;);&lt;br /&gt;
        } catch (SerializationException) {&lt;br /&gt;
            address = null;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public string Name {&lt;br /&gt;
        get { return name; }&lt;br /&gt;
        set { name = value; }&lt;br /&gt;
    }&lt;br /&gt;
    public int Age {&lt;br /&gt;
        get { return age; }&lt;br /&gt;
        set { age = value; }&lt;br /&gt;
    }&lt;br /&gt;
    public string Address {&lt;br /&gt;
        get { return address; }&lt;br /&gt;
        set { address = value; }&lt;br /&gt;
    }&lt;br /&gt;
    public void GetObjectData(SerializationInfo inf, StreamingContext con) {&lt;br /&gt;
        inf.AddValue(&amp;quot;Name&amp;quot;, name);&lt;br /&gt;
        inf.AddValue(&amp;quot;Age&amp;quot;, age);&lt;br /&gt;
        if ((con.State &amp;amp; StreamingContextStates.File) == 0) {&lt;br /&gt;
            inf.AddValue(&amp;quot;Address&amp;quot;, address);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public override string ToString() {&lt;br /&gt;
        StringBuilder str = new StringBuilder();&lt;br /&gt;
        str.AppendFormat(&amp;quot;Name: {0}\r\n&amp;quot;, Name);&lt;br /&gt;
        str.AppendFormat(&amp;quot;Age: {0}\r\n&amp;quot;, Age);&lt;br /&gt;
        str.AppendFormat(&amp;quot;Address: {0}\r\n&amp;quot;, Address);&lt;br /&gt;
        return str.ToString();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    public static void Main(string[] args) {&lt;br /&gt;
        Employee roger = new Employee(&amp;quot;R&amp;quot;, 56, &amp;quot;L&amp;quot;);&lt;br /&gt;
        Console.WriteLine(roger);&lt;br /&gt;
        Stream str = File.Create(&amp;quot;r.bin&amp;quot;);&lt;br /&gt;
        BinaryFormatter bf = new BinaryFormatter();&lt;br /&gt;
        bf.Context = new StreamingContext(StreamingContextStates.CrossAppDomain);&lt;br /&gt;
        bf.Serialize(str, roger);&lt;br /&gt;
        str.Close();&lt;br /&gt;
        str = File.OpenRead(&amp;quot;r.bin&amp;quot;);&lt;br /&gt;
        bf = new BinaryFormatter();&lt;br /&gt;
        roger = (Employee)bf.Deserialize(str);&lt;br /&gt;
        str.Close();&lt;br /&gt;
        Console.WriteLine(roger);&lt;br /&gt;
        str = File.Create(&amp;quot;r.bin&amp;quot;);&lt;br /&gt;
        bf = new BinaryFormatter();&lt;br /&gt;
        bf.Context = new StreamingContext(StreamingContextStates.File);&lt;br /&gt;
        bf.Serialize(str, roger);&lt;br /&gt;
        str.Close();&lt;br /&gt;
        str = File.OpenRead(&amp;quot;r.bin&amp;quot;);&lt;br /&gt;
        bf = new BinaryFormatter();&lt;br /&gt;
        roger = (Employee)bf.Deserialize(str);&lt;br /&gt;
        str.Close();&lt;br /&gt;
        Console.WriteLine(roger);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Deserialize Object==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Runtime.Serialization.Formatters.Binary;&lt;br /&gt;
using System.IO;&lt;br /&gt;
[Serializable]&lt;br /&gt;
public class BookRecord {&lt;br /&gt;
    public String title;&lt;br /&gt;
    public int asin;&lt;br /&gt;
    public BookRecord(String title, int asin) {&lt;br /&gt;
        this.title = title;&lt;br /&gt;
        this.asin = asin;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class DeserializeObject {&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        FileStream streamIn = new FileStream(@&amp;quot;book.obj&amp;quot;, FileMode.Open);&lt;br /&gt;
        BinaryFormatter bf = new BinaryFormatter();&lt;br /&gt;
        BookRecord book = (BookRecord)bf.Deserialize(streamIn);&lt;br /&gt;
        streamIn.Close();&lt;br /&gt;
        Console.Write(book.title + &amp;quot; &amp;quot; + book.asin);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==illustrates binary serialization==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Mastering Visual C# .NET&lt;br /&gt;
by Jason Price, Mike Gunderloy&lt;br /&gt;
Publisher: Sybex;&lt;br /&gt;
ISBN: 0782129110&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
 /*&lt;br /&gt;
  Example15_19.cs illustrates binary serialization&lt;br /&gt;
*/&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Runtime.Serialization;&lt;br /&gt;
using System.Runtime.Serialization.Formatters.Binary;&lt;br /&gt;
// the Customer class gives us something to serialize&lt;br /&gt;
[Serializable]&lt;br /&gt;
class Customer&lt;br /&gt;
{&lt;br /&gt;
  // some private data members&lt;br /&gt;
  private int CustomerNumber;&lt;br /&gt;
  private string CustomerName;&lt;br /&gt;
  private string CustomerCountry;&lt;br /&gt;
  // the WriteCustomer method formats info to the screen&lt;br /&gt;
  public void WriteCustomer()&lt;br /&gt;
  {&lt;br /&gt;
    Console.WriteLine(&amp;quot;Customer Number: &amp;quot; + this.CustomerNumber);&lt;br /&gt;
    Console.WriteLine(&amp;quot;Customer Name: &amp;quot; + this.CustomerName);&lt;br /&gt;
    Console.WriteLine(&amp;quot;Customer Country: &amp;quot; + this.CustomerCountry);&lt;br /&gt;
  }&lt;br /&gt;
  // the constructor accepts all the info to create a customer&lt;br /&gt;
  public Customer(&lt;br /&gt;
    int newCustomerNumber, &lt;br /&gt;
    string newCustomerName, &lt;br /&gt;
    string newCustomerCountry)&lt;br /&gt;
  {&lt;br /&gt;
    this.CustomerNumber = newCustomerNumber;&lt;br /&gt;
    this.CustomerName = newCustomerName;&lt;br /&gt;
    this.CustomerCountry = newCustomerCountry;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class Example15_19 &lt;br /&gt;
{&lt;br /&gt;
  public static void Main() &lt;br /&gt;
  {&lt;br /&gt;
    // create a new customer and dump to screen&lt;br /&gt;
    Customer MyCustomer = new Customer(1, &amp;quot;X Corporation&amp;quot;, &amp;quot;France&amp;quot;);&lt;br /&gt;
    MyCustomer.WriteCustomer();&lt;br /&gt;
    // Create a FileStream to hold the serialized customer&lt;br /&gt;
    FileStream serializeStream = new FileStream(&amp;quot;c:\\MyCustomer.dat&amp;quot;, &lt;br /&gt;
     FileMode.Create);&lt;br /&gt;
    // use the CLR&amp;quot;s binary formatting support&lt;br /&gt;
    BinaryFormatter bf = new BinaryFormatter();&lt;br /&gt;
    // serialize the object&lt;br /&gt;
    bf.Serialize(serializeStream, MyCustomer);&lt;br /&gt;
    serializeStream.Flush();&lt;br /&gt;
    serializeStream.Close();&lt;br /&gt;
    // retrieve the serialized version to a second object and dump that&lt;br /&gt;
    FileStream retrieveStream = new FileStream(&amp;quot;c:\\MyCustomer.dat&amp;quot;,&lt;br /&gt;
     FileMode.Open);&lt;br /&gt;
    Customer NewCustomer = (Customer) bf.Deserialize(retrieveStream);&lt;br /&gt;
    NewCustomer.WriteCustomer();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==NonSerialized attributes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
    using System;&lt;br /&gt;
  using System.IO;&lt;br /&gt;
  using System.Runtime.Serialization.Formatters.Binary;&lt;br /&gt;
  using System.Runtime.Serialization.Formatters.Soap;&lt;br /&gt;
  &lt;br /&gt;
    public class RoomApp&lt;br /&gt;
    {&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
      // Make a room and listen to the tunes.&lt;br /&gt;
      Console.WriteLine(&amp;quot;Made a My Room...&amp;quot;);&lt;br /&gt;
      MyRoom myAuto = new MyRoom(&amp;quot;My&amp;quot;, 50, false, true);&lt;br /&gt;
      myAuto.TurnOnRadio(true);&lt;br /&gt;
      myAuto.GoUnderWater();&lt;br /&gt;
      // Now save this room to a binary stream.&lt;br /&gt;
      FileStream myStream = File.Create(&amp;quot;RoomData.dat&amp;quot;);&lt;br /&gt;
      BinaryFormatter myBinaryFormat = new BinaryFormatter();&lt;br /&gt;
      myBinaryFormat.Serialize(myStream, myAuto);&lt;br /&gt;
      myStream.Close();&lt;br /&gt;
      Console.WriteLine(&amp;quot;Saved room to roomdata.dat.&amp;quot;);&lt;br /&gt;
      // Read in the Room from the binary stream.&lt;br /&gt;
      Console.WriteLine(&amp;quot;Reading room from binary file.&amp;quot;);&lt;br /&gt;
      myStream = File.OpenRead(&amp;quot;RoomData.dat&amp;quot;);&lt;br /&gt;
      MyRoom roomFromDisk = (MyRoom)myBinaryFormat.Deserialize(myStream);&lt;br /&gt;
      Console.WriteLine(roomFromDisk.PetName + &amp;quot; is alive!&amp;quot;);&lt;br /&gt;
      roomFromDisk.TurnOnRadio(true);&lt;br /&gt;
      myStream.Close();&lt;br /&gt;
      &lt;br /&gt;
    }&lt;br /&gt;
    }  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  [Serializable]&lt;br /&gt;
    public class Radio&lt;br /&gt;
    {&lt;br /&gt;
    [NonSerialized]&lt;br /&gt;
    private int objectIDNumber = 9;&lt;br /&gt;
        public Radio(){}&lt;br /&gt;
    public void On(bool state)&lt;br /&gt;
    {&lt;br /&gt;
      if(state == true)&lt;br /&gt;
        Console.WriteLine(&amp;quot;Music is on...&amp;quot;);&lt;br /&gt;
      else&lt;br /&gt;
        Console.WriteLine(&amp;quot;No tunes...&amp;quot;);        &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  [Serializable]&lt;br /&gt;
    public class Room&lt;br /&gt;
    {&lt;br /&gt;
    protected string petName;&lt;br /&gt;
    protected int maxInternetSpeed;&lt;br /&gt;
    protected Radio theRadio = new Radio();&lt;br /&gt;
        public Room(string petName, int maxInternetSpeed)&lt;br /&gt;
        {&lt;br /&gt;
      this.petName = petName;&lt;br /&gt;
      this.maxInternetSpeed = maxInternetSpeed;&lt;br /&gt;
        }&lt;br /&gt;
    public Room() {}&lt;br /&gt;
    public String PetName&lt;br /&gt;
    {&lt;br /&gt;
      get { return petName; }&lt;br /&gt;
      set { petName = value; }&lt;br /&gt;
    }&lt;br /&gt;
    public int MaxInternetSpeed&lt;br /&gt;
    {&lt;br /&gt;
      get { return maxInternetSpeed; }&lt;br /&gt;
      set { maxInternetSpeed = value; }&lt;br /&gt;
    }&lt;br /&gt;
    public void TurnOnRadio(bool state)&lt;br /&gt;
    {&lt;br /&gt;
      theRadio.On(state);&lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  [Serializable]&lt;br /&gt;
    public class MyRoom : Room&lt;br /&gt;
    {&lt;br /&gt;
    protected bool isFlightWorthy;&lt;br /&gt;
    protected bool isSeaWorthy;&lt;br /&gt;
    public MyRoom(string petName, int maxInternetSpeed, &lt;br /&gt;
              bool canFly, bool canSubmerge)&lt;br /&gt;
      : base(petName, maxInternetSpeed)&lt;br /&gt;
        {&lt;br /&gt;
      this.isFlightWorthy = canFly;&lt;br /&gt;
      this.isSeaWorthy = canSubmerge;&lt;br /&gt;
    }&lt;br /&gt;
    public MyRoom(){}&lt;br /&gt;
    public void Fly()&lt;br /&gt;
    {&lt;br /&gt;
      if(isFlightWorthy)&lt;br /&gt;
        Console.WriteLine(&amp;quot;Taking off!&amp;quot;);&lt;br /&gt;
      else&lt;br /&gt;
        Console.WriteLine(&amp;quot;Falling off cliff!&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    public void GoUnderWater()&lt;br /&gt;
    {&lt;br /&gt;
      if(isSeaWorthy)&lt;br /&gt;
        Console.WriteLine(&amp;quot;Diving....&amp;quot;);&lt;br /&gt;
      else&lt;br /&gt;
        Console.WriteLine(&amp;quot;Drowning!!!&amp;quot;);      &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Serial Employee class==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Runtime.Serialization;&lt;br /&gt;
using System.Runtime.Serialization.Formatters.Soap;&lt;br /&gt;
class SoapTest&lt;br /&gt;
{&lt;br /&gt;
   public static void Main()&lt;br /&gt;
   {&lt;br /&gt;
      SerialEmployee emp1 = new SerialEmployee();&lt;br /&gt;
      SerialEmployee emp2 = new SerialEmployee();&lt;br /&gt;
      emp1.EmployeeID = 1;&lt;br /&gt;
      emp1.LastName = &amp;quot;B&amp;quot;;&lt;br /&gt;
      emp1.FirstName = &amp;quot;K&amp;quot;;&lt;br /&gt;
      emp1.YearsService = 12;&lt;br /&gt;
      emp1.Salary = 35000.50;&lt;br /&gt;
      emp2.EmployeeID = 2;&lt;br /&gt;
      emp2.LastName = &amp;quot;B&amp;quot;;&lt;br /&gt;
      emp2.FirstName = &amp;quot;J&amp;quot;;&lt;br /&gt;
      emp2.YearsService = 9;&lt;br /&gt;
      emp2.Salary = 23700.30;&lt;br /&gt;
      Stream str = new FileStream(&amp;quot;soaptest.xml&amp;quot;, FileMode.Create, FileAccess.ReadWrite);&lt;br /&gt;
      IFormatter formatter = new SoapFormatter();&lt;br /&gt;
      formatter.Serialize(str, emp1);&lt;br /&gt;
      formatter.Serialize(str, emp2);&lt;br /&gt;
      str.Close();&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[Serializable]&lt;br /&gt;
public class SerialEmployee&lt;br /&gt;
{&lt;br /&gt;
   public int EmployeeID;&lt;br /&gt;
   public string LastName;&lt;br /&gt;
   public string FirstName;&lt;br /&gt;
   public int YearsService;&lt;br /&gt;
   public double Salary;&lt;br /&gt;
   public SerialEmployee()&lt;br /&gt;
   {&lt;br /&gt;
      EmployeeID = 0;&lt;br /&gt;
      LastName = null;&lt;br /&gt;
      FirstName = null;&lt;br /&gt;
      YearsService = 0;&lt;br /&gt;
      Salary = 0.0;&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Serialize and DeSerialize==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Runtime.Serialization;&lt;br /&gt;
using System.Runtime.Serialization.Formatters.Binary;&lt;br /&gt;
class Program {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        Person me = new Person();&lt;br /&gt;
        me.Age = 38;&lt;br /&gt;
        me.WeightInPounds = 200;&lt;br /&gt;
        Console.WriteLine(me.Age);&lt;br /&gt;
        Console.WriteLine(me.WeightInPounds);&lt;br /&gt;
        Stream s = File.Open(&amp;quot;Me.dat&amp;quot;, FileMode.Create);&lt;br /&gt;
        BinaryFormatter bf = new BinaryFormatter();&lt;br /&gt;
        bf.Serialize(s, me);&lt;br /&gt;
        s.Close();&lt;br /&gt;
        s = File.Open(&amp;quot;Me.dat&amp;quot;, FileMode.Open);&lt;br /&gt;
        bf = new BinaryFormatter();&lt;br /&gt;
        object o = bf.Deserialize(s);&lt;br /&gt;
        Person p = o as Person;&lt;br /&gt;
        if (p != null)&lt;br /&gt;
            Console.WriteLine(&amp;quot;DeSerialized Person aged: {0} weight: {1}&amp;quot;, p.Age, p.WeightInPounds);&lt;br /&gt;
        s.Close();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
[Serializable]&lt;br /&gt;
public class Person {&lt;br /&gt;
    public Person() {&lt;br /&gt;
    }&lt;br /&gt;
    public int Age;&lt;br /&gt;
    public int WeightInPounds;&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Serialize hiearchy classes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
    using System;&lt;br /&gt;
  using System.IO;&lt;br /&gt;
  using System.Runtime.Serialization.Formatters.Binary;&lt;br /&gt;
  using System.Runtime.Serialization.Formatters.Soap;&lt;br /&gt;
  &lt;br /&gt;
    public class RoomApp&lt;br /&gt;
    {&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
      // Make a room and listen to the tunes.&lt;br /&gt;
      Console.WriteLine(&amp;quot;Made a My Room...&amp;quot;);&lt;br /&gt;
      MyRoom myAuto = new MyRoom(&amp;quot;My&amp;quot;, 50, false, true);&lt;br /&gt;
      myAuto.TurnOnRadio(true);&lt;br /&gt;
      myAuto.GoUnderWater();&lt;br /&gt;
      // Now save this room to a binary stream.&lt;br /&gt;
      FileStream myStream = File.Create(&amp;quot;RoomData.dat&amp;quot;);&lt;br /&gt;
      BinaryFormatter myBinaryFormat = new BinaryFormatter();&lt;br /&gt;
      myBinaryFormat.Serialize(myStream, myAuto);&lt;br /&gt;
      myStream.Close();&lt;br /&gt;
      Console.WriteLine(&amp;quot;Saved room to roomdata.dat.&amp;quot;);&lt;br /&gt;
      // Read in the Room from the binary stream.&lt;br /&gt;
      Console.WriteLine(&amp;quot;Reading room from binary file.&amp;quot;);&lt;br /&gt;
      myStream = File.OpenRead(&amp;quot;RoomData.dat&amp;quot;);&lt;br /&gt;
      MyRoom roomFromDisk = (MyRoom)myBinaryFormat.Deserialize(myStream);&lt;br /&gt;
      Console.WriteLine(roomFromDisk.PetName + &amp;quot; is alive!&amp;quot;);&lt;br /&gt;
      roomFromDisk.TurnOnRadio(true);&lt;br /&gt;
      myStream.Close();&lt;br /&gt;
      &lt;br /&gt;
    }&lt;br /&gt;
    }  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  [Serializable]&lt;br /&gt;
    public class Radio&lt;br /&gt;
    {&lt;br /&gt;
    [NonSerialized]&lt;br /&gt;
    private int objectIDNumber = 9;&lt;br /&gt;
        public Radio(){}&lt;br /&gt;
    public void On(bool state)&lt;br /&gt;
    {&lt;br /&gt;
      if(state == true)&lt;br /&gt;
        Console.WriteLine(&amp;quot;Music is on...&amp;quot;);&lt;br /&gt;
      else&lt;br /&gt;
        Console.WriteLine(&amp;quot;No tunes...&amp;quot;);        &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  [Serializable]&lt;br /&gt;
    public class Room&lt;br /&gt;
    {&lt;br /&gt;
    protected string petName;&lt;br /&gt;
    protected int maxInternetSpeed;&lt;br /&gt;
    protected Radio theRadio = new Radio();&lt;br /&gt;
        public Room(string petName, int maxInternetSpeed)&lt;br /&gt;
        {&lt;br /&gt;
      this.petName = petName;&lt;br /&gt;
      this.maxInternetSpeed = maxInternetSpeed;&lt;br /&gt;
        }&lt;br /&gt;
    public Room() {}&lt;br /&gt;
    public String PetName&lt;br /&gt;
    {&lt;br /&gt;
      get { return petName; }&lt;br /&gt;
      set { petName = value; }&lt;br /&gt;
    }&lt;br /&gt;
    public int MaxInternetSpeed&lt;br /&gt;
    {&lt;br /&gt;
      get { return maxInternetSpeed; }&lt;br /&gt;
      set { maxInternetSpeed = value; }&lt;br /&gt;
    }&lt;br /&gt;
    public void TurnOnRadio(bool state)&lt;br /&gt;
    {&lt;br /&gt;
      theRadio.On(state);&lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  [Serializable]&lt;br /&gt;
    public class MyRoom : Room&lt;br /&gt;
    {&lt;br /&gt;
    protected bool isFlightWorthy;&lt;br /&gt;
    protected bool isSeaWorthy;&lt;br /&gt;
    public MyRoom(string petName, int maxInternetSpeed, &lt;br /&gt;
              bool canFly, bool canSubmerge)&lt;br /&gt;
      : base(petName, maxInternetSpeed)&lt;br /&gt;
        {&lt;br /&gt;
      this.isFlightWorthy = canFly;&lt;br /&gt;
      this.isSeaWorthy = canSubmerge;&lt;br /&gt;
    }&lt;br /&gt;
    public MyRoom(){}&lt;br /&gt;
    public void Fly()&lt;br /&gt;
    {&lt;br /&gt;
      if(isFlightWorthy)&lt;br /&gt;
        Console.WriteLine(&amp;quot;Taking off!&amp;quot;);&lt;br /&gt;
      else&lt;br /&gt;
        Console.WriteLine(&amp;quot;Falling off cliff!&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    public void GoUnderWater()&lt;br /&gt;
    {&lt;br /&gt;
      if(isSeaWorthy)&lt;br /&gt;
        Console.WriteLine(&amp;quot;Diving....&amp;quot;);&lt;br /&gt;
      else&lt;br /&gt;
        Console.WriteLine(&amp;quot;Drowning!!!&amp;quot;);      &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Set XML tag name for Serialization==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Xml.Serialization;&lt;br /&gt;
public class Serializer {&lt;br /&gt;
  public static void Main(string [] args) {&lt;br /&gt;
    Personnel personnel = CreatePersonnel();&lt;br /&gt;
    XmlSerializer serializer = new XmlSerializer(typeof(Personnel));&lt;br /&gt;
    using (FileStream stream = File.OpenWrite(&amp;quot;Employees.xml&amp;quot;)) {&lt;br /&gt;
      serializer.Serialize(stream, personnel);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  private static Personnel CreatePersonnel() {&lt;br /&gt;
    Personnel personnel = new Personnel();&lt;br /&gt;
    personnel.Employees = new Employee [] {new Employee()};&lt;br /&gt;
    personnel.Employees[0].FirstName = &amp;quot;Joe&amp;quot;;&lt;br /&gt;
    personnel.Employees[0].MiddleInitial = &amp;quot;M&amp;quot;;&lt;br /&gt;
    personnel.Employees[0].LastName = &amp;quot;Lee&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    personnel.Employees[0].Addresses = new Address [] {new Address()};&lt;br /&gt;
    personnel.Employees[0].Addresses[0].AddressType = AddressType.Home;&lt;br /&gt;
    personnel.Employees[0].Addresses[0].Street = new string [] {&amp;quot;999 Colluden&amp;quot;};&lt;br /&gt;
    personnel.Employees[0].Addresses[0].City = &amp;quot;Vancouver&amp;quot;;&lt;br /&gt;
    personnel.Employees[0].Addresses[0].State = State.BC;&lt;br /&gt;
    personnel.Employees[0].Addresses[0].Zip = &amp;quot;V5V 4X7&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    personnel.Employees[0].HireDate = new DateTime(2001,1,1);&lt;br /&gt;
    &lt;br /&gt;
    return personnel;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[Serializable]&lt;br /&gt;
public enum AddressType {&lt;br /&gt;
  Home,&lt;br /&gt;
  Office&lt;br /&gt;
}&lt;br /&gt;
[Serializable]&lt;br /&gt;
public enum State {&lt;br /&gt;
  [XmlEnum(Name=&amp;quot;British C&amp;quot;)]BC,&lt;br /&gt;
  [XmlEnum(Name=&amp;quot;Sask&amp;quot;)]SK&lt;br /&gt;
}&lt;br /&gt;
[Serializable]&lt;br /&gt;
public class Address {&lt;br /&gt;
  [XmlAttribute(AttributeName=&amp;quot;type&amp;quot;)]  public AddressType AddressType;&lt;br /&gt;
  [XmlElement(ElementName=&amp;quot;street&amp;quot;)]    public string[] Street;&lt;br /&gt;
  [XmlElement(ElementName=&amp;quot;city&amp;quot;)]      public string City;&lt;br /&gt;
  [XmlElement(ElementName=&amp;quot;state&amp;quot;)]     public State State;&lt;br /&gt;
  [XmlElement(ElementName=&amp;quot;zip&amp;quot;)]       public string Zip;&lt;br /&gt;
}&lt;br /&gt;
[Serializable]&lt;br /&gt;
public class TelephoneNumber {&lt;br /&gt;
  [XmlAttribute(AttributeName=&amp;quot;type&amp;quot;)] public AddressType AddressType;&lt;br /&gt;
  [XmlElement(ElementName=&amp;quot;areacode&amp;quot;)] public string AreaCode;&lt;br /&gt;
  [XmlElement(ElementName=&amp;quot;exchange&amp;quot;)] public string Exchange;&lt;br /&gt;
  [XmlElement(ElementName=&amp;quot;number&amp;quot;)]   public string Number;&lt;br /&gt;
}&lt;br /&gt;
[Serializable]&lt;br /&gt;
public class Employee {&lt;br /&gt;
  [XmlAttribute(AttributeName=&amp;quot;firstname&amp;quot;)]      public string FirstName;&lt;br /&gt;
  [XmlAttribute(AttributeName=&amp;quot;middleinitial&amp;quot;)]  public string MiddleInitial;&lt;br /&gt;
  [XmlAttribute(AttributeName=&amp;quot;lastname&amp;quot;)]       public string LastName;&lt;br /&gt;
  &lt;br /&gt;
  [XmlArray(ElementName=&amp;quot;addresses&amp;quot;)]&lt;br /&gt;
  [XmlArrayItem(ElementName=&amp;quot;address&amp;quot;)]      public Address [] Addresses;&lt;br /&gt;
  [XmlArray(ElementName=&amp;quot;telephones&amp;quot;)] &lt;br /&gt;
  [XmlArrayItem(ElementName=&amp;quot;telephone&amp;quot;)]    public TelephoneNumber [] TelephoneNumbers;&lt;br /&gt;
  &lt;br /&gt;
  [XmlAttribute(AttributeName=&amp;quot;hiredate&amp;quot;)]   public DateTime HireDate;&lt;br /&gt;
}&lt;br /&gt;
[Serializable]&lt;br /&gt;
[XmlRoot(ElementName=&amp;quot;personnel&amp;quot;)]&lt;br /&gt;
public class Personnel {&lt;br /&gt;
  [XmlElement(ElementName=&amp;quot;employee&amp;quot;)]&lt;br /&gt;
  public Employee [] Employees;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Three types of Serialization: Binary, Soap, XML==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Runtime.Serialization.Formatters.Binary;&lt;br /&gt;
using System.Runtime.Serialization.Formatters.Soap;&lt;br /&gt;
using System.Xml.Serialization;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
[Serializable]&lt;br /&gt;
public class Radio {&lt;br /&gt;
    public bool hasTweeters;&lt;br /&gt;
    public bool hasSubWoofers;&lt;br /&gt;
    public double[] stationPresets;&lt;br /&gt;
    [NonSerialized]&lt;br /&gt;
    public string radioID = &amp;quot;001&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
[Serializable]&lt;br /&gt;
public class Car {&lt;br /&gt;
    public Radio theRadio = new Radio();&lt;br /&gt;
    public bool isHatchBack;&lt;br /&gt;
}&lt;br /&gt;
[Serializable, XmlRoot(Namespace = &amp;quot;http://www.yoursite.ru&amp;quot;)]&lt;br /&gt;
public class JamesBondCar : Car {&lt;br /&gt;
    public JamesBondCar(bool SkyWorthy, bool SeaWorthy) {&lt;br /&gt;
        canFly = SkyWorthy;&lt;br /&gt;
        canSubmerge = SeaWorthy;&lt;br /&gt;
    }&lt;br /&gt;
    public JamesBondCar() { }&lt;br /&gt;
    [XmlAttribute]&lt;br /&gt;
    public bool canFly;&lt;br /&gt;
    [XmlAttribute]&lt;br /&gt;
    public bool canSubmerge;&lt;br /&gt;
}&lt;br /&gt;
class Program {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        JamesBondCar jbc = new JamesBondCar();&lt;br /&gt;
        jbc.canFly = true;&lt;br /&gt;
        jbc.canSubmerge = false;&lt;br /&gt;
        jbc.theRadio.stationPresets = new double[] { 89.3, 105.1, 97.1 };&lt;br /&gt;
        jbc.theRadio.hasTweeters = true;&lt;br /&gt;
        BinaryFormatter binFormat = new BinaryFormatter();&lt;br /&gt;
        Stream fStream = new FileStream(&amp;quot;CarData.dat&amp;quot;,FileMode.Create, FileAccess.Write, FileShare.None);&lt;br /&gt;
        binFormat.Serialize(fStream, jbc);&lt;br /&gt;
        fStream.Close();&lt;br /&gt;
        fStream = File.OpenRead(&amp;quot;CarData.dat&amp;quot;);&lt;br /&gt;
        JamesBondCar carFromDisk =(JamesBondCar)binFormat.Deserialize(fStream);&lt;br /&gt;
        Console.WriteLine(&amp;quot;Can this car fly? : {0}&amp;quot;, carFromDisk.canFly);&lt;br /&gt;
        fStream.Close();&lt;br /&gt;
        SoapFormatter soapForamt = new SoapFormatter();&lt;br /&gt;
        fStream = new FileStream(&amp;quot;CarData.soap&amp;quot;,FileMode.Create, FileAccess.Write, FileShare.None);&lt;br /&gt;
        soapForamt.Serialize(fStream, jbc);&lt;br /&gt;
        fStream.Close();&lt;br /&gt;
        XmlSerializer xmlForamt = new XmlSerializer(typeof(JamesBondCar),new Type[] { typeof(Radio), typeof(Car) });&lt;br /&gt;
        fStream = new FileStream(&amp;quot;CarData.xml&amp;quot;,FileMode.Create, FileAccess.Write, FileShare.None);&lt;br /&gt;
        xmlForamt.Serialize(fStream, jbc);&lt;br /&gt;
        fStream.Close();&lt;br /&gt;
        ArrayList myCars = new ArrayList();&lt;br /&gt;
        myCars.Add(new JamesBondCar(true, true));&lt;br /&gt;
        myCars.Add(new JamesBondCar(true, false));&lt;br /&gt;
        myCars.Add(new JamesBondCar(false, true));&lt;br /&gt;
        myCars.Add(new JamesBondCar(false, false));&lt;br /&gt;
        fStream = new FileStream(&amp;quot;CarCollection.xml&amp;quot;,FileMode.Create, FileAccess.Write, FileShare.None);&lt;br /&gt;
        xmlForamt = new XmlSerializer(typeof(ArrayList),new Type[] { typeof(JamesBondCar), typeof(Car), typeof(Radio) });&lt;br /&gt;
        xmlForamt.Serialize(fStream, myCars);&lt;br /&gt;
        fStream.Close();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use Serializable attribute to mark a class==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Runtime.Serialization.Formatters.Binary;&lt;br /&gt;
using System.IO;&lt;br /&gt;
[Serializable]&lt;br /&gt;
public class BookRecord {&lt;br /&gt;
    public String title;&lt;br /&gt;
    public int asin;&lt;br /&gt;
    public BookRecord(String title, int asin) {&lt;br /&gt;
        this.title = title;&lt;br /&gt;
        this.asin = asin;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class SerializeObject {&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        BookRecord book = new BookRecord(&amp;quot;title&amp;quot;,123456789);&lt;br /&gt;
        FileStream stream = new FileStream(@&amp;quot;book.obj&amp;quot;,FileMode.Create);&lt;br /&gt;
        BinaryFormatter bf = new BinaryFormatter();&lt;br /&gt;
        bf.Serialize(stream, book);&lt;br /&gt;
        stream.Close();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use Serializable attribute to mark a generic class==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Runtime.Serialization;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Runtime.Serialization.Formatters.Binary;&lt;br /&gt;
[Serializable]&lt;br /&gt;
public class SampleCollection&amp;lt;T&amp;gt; : List&amp;lt;T&amp;gt; {&lt;br /&gt;
    private int _intData;&lt;br /&gt;
    private string _stringData;&lt;br /&gt;
    public SampleCollection(int intData, string stringData) {&lt;br /&gt;
        this._intData = intData;&lt;br /&gt;
        this._stringData = stringData;&lt;br /&gt;
    }&lt;br /&gt;
    public int IntVal {&lt;br /&gt;
        get { return this._intData; }&lt;br /&gt;
    }&lt;br /&gt;
    public string StrVal {&lt;br /&gt;
        get { return this._stringData; }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class TypeSafeSerializer {&lt;br /&gt;
    private TypeSafeSerializer() { }&lt;br /&gt;
    public static void AddValue&amp;lt;T&amp;gt;(String name, T value, SerializationInfo serInfo) {&lt;br /&gt;
        serInfo.AddValue(name, value);&lt;br /&gt;
    }&lt;br /&gt;
    public static T GetValue&amp;lt;T&amp;gt;(String name, SerializationInfo serInfo) {&lt;br /&gt;
        T retVal = (T)serInfo.GetValue(name, typeof(T));&lt;br /&gt;
        return retVal;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        SampleCollection&amp;lt;string&amp;gt; strList = new SampleCollection&amp;lt;string&amp;gt;(111, &amp;quot;Value1&amp;quot;);&lt;br /&gt;
        strList.Add(&amp;quot;Val1&amp;quot;);&lt;br /&gt;
        strList.Add(&amp;quot;Val2&amp;quot;);&lt;br /&gt;
        MemoryStream stream = new MemoryStream();&lt;br /&gt;
        BinaryFormatter formatter = new BinaryFormatter();&lt;br /&gt;
        formatter.Serialize(stream, strList);&lt;br /&gt;
        stream.Seek(0, SeekOrigin.Begin);&lt;br /&gt;
        SampleCollection&amp;lt;string&amp;gt; newList = (SampleCollection&amp;lt;string&amp;gt;)formatter.Deserialize(stream);&lt;br /&gt;
        Console.Out.WriteLine(newList.IntVal);&lt;br /&gt;
        Console.Out.WriteLine(newList.StrVal);&lt;br /&gt;
        foreach (string listValue in newList)&lt;br /&gt;
            Console.Out.WriteLine(listValue);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use XML Serialization with Custom Objects==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Xml;&lt;br /&gt;
using System.Xml.Serialization;&lt;br /&gt;
using System.IO;&lt;br /&gt;
public class SerializeXml {&lt;br /&gt;
    private static void Main() {&lt;br /&gt;
        CarList catalog = new CarList(&amp;quot;New List&amp;quot;, DateTime.Now.AddYears(1));&lt;br /&gt;
        Car[] cars = new Car[2];&lt;br /&gt;
        cars[0] = new Car(&amp;quot;Car 1&amp;quot;, 12342.99m);&lt;br /&gt;
        cars[1] = new Car(&amp;quot;Car 2&amp;quot;, 21234123.9m);&lt;br /&gt;
        catalog.Cars = cars;&lt;br /&gt;
        XmlSerializer serializer = new XmlSerializer(typeof(CarList));&lt;br /&gt;
        FileStream fs = new FileStream(&amp;quot;CarList.xml&amp;quot;, FileMode.Create);&lt;br /&gt;
        serializer.Serialize(fs, catalog);&lt;br /&gt;
        fs.Close();&lt;br /&gt;
        catalog = null;&lt;br /&gt;
        // Deserialize the order from the file.&lt;br /&gt;
        fs = new FileStream(&amp;quot;CarList.xml&amp;quot;, FileMode.Open);&lt;br /&gt;
        catalog = (CarList)serializer.Deserialize(fs);&lt;br /&gt;
        // Serialize the order to the Console window.&lt;br /&gt;
        serializer.Serialize(Console.Out, catalog);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[XmlRoot(&amp;quot;carList&amp;quot;)]&lt;br /&gt;
public class CarList {&lt;br /&gt;
    [XmlElement(&amp;quot;catalogName&amp;quot;)]&lt;br /&gt;
    public string ListName;&lt;br /&gt;
    &lt;br /&gt;
    // Use the date data type (and ignore the time portion in the serialized XML).&lt;br /&gt;
    [XmlElement(ElementName=&amp;quot;expiryDate&amp;quot;, DataType=&amp;quot;date&amp;quot;)]&lt;br /&gt;
    public DateTime ExpiryDate;&lt;br /&gt;
    &lt;br /&gt;
    [XmlArray(&amp;quot;cars&amp;quot;)]&lt;br /&gt;
    [XmlArrayItem(&amp;quot;car&amp;quot;)]&lt;br /&gt;
    public Car[] Cars;&lt;br /&gt;
    public CarList() {&lt;br /&gt;
    }&lt;br /&gt;
    public CarList(string catalogName, DateTime expiryDate) {&lt;br /&gt;
        this.ListName = catalogName;&lt;br /&gt;
        this.ExpiryDate = expiryDate;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class Car {&lt;br /&gt;
    [XmlElement(&amp;quot;carName&amp;quot;)]&lt;br /&gt;
    public string CarName;&lt;br /&gt;
    &lt;br /&gt;
    [XmlElement(&amp;quot;carPrice&amp;quot;)]&lt;br /&gt;
    public decimal CarPrice;&lt;br /&gt;
    &lt;br /&gt;
    [XmlElement(&amp;quot;inStock&amp;quot;)]&lt;br /&gt;
    public bool InStock;&lt;br /&gt;
    &lt;br /&gt;
    [XmlAttributeAttribute(AttributeName=&amp;quot;id&amp;quot;, DataType=&amp;quot;integer&amp;quot;)]&lt;br /&gt;
    public string Id;&lt;br /&gt;
    public Car() {&lt;br /&gt;
    }&lt;br /&gt;
    public Car(string carName, decimal carPrice) {&lt;br /&gt;
        this.CarName = carName;&lt;br /&gt;
        this.CarPrice = carPrice;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Working with the Serializable Attribute==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Runtime.Serialization.Formatters.Binary;&lt;br /&gt;
   &lt;br /&gt;
[Serializable]&lt;br /&gt;
class Point2D&lt;br /&gt;
{&lt;br /&gt;
    public int X;&lt;br /&gt;
    public int Y;&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
class MyMainClass&lt;br /&gt;
{&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        Point2D My2DPoint = new Point2D();&lt;br /&gt;
   &lt;br /&gt;
        My2DPoint.X = 100;&lt;br /&gt;
        My2DPoint.Y = 200;&lt;br /&gt;
   &lt;br /&gt;
        Stream WriteStream = File.Create(&amp;quot;Point2D.bin&amp;quot;);&lt;br /&gt;
        BinaryFormatter BinaryWrite = new BinaryFormatter();&lt;br /&gt;
        BinaryWrite.Serialize(WriteStream, My2DPoint);&lt;br /&gt;
        WriteStream.Close();&lt;br /&gt;
   &lt;br /&gt;
        Point2D ANewPoint = new Point2D();&lt;br /&gt;
   &lt;br /&gt;
        Console.WriteLine(&amp;quot;New Point Before Deserialization: ({0}, {1})&amp;quot;, ANewPoint.X, ANewPoint.Y);&lt;br /&gt;
        Stream ReadStream = File.OpenRead(&amp;quot;Point2D.bin&amp;quot;);&lt;br /&gt;
        BinaryFormatter BinaryRead = new BinaryFormatter();&lt;br /&gt;
        ANewPoint = (Point2D)BinaryRead.Deserialize(ReadStream);&lt;br /&gt;
        ReadStream.Close();&lt;br /&gt;
        Console.WriteLine(&amp;quot;New Point After Deserialization: ({0}, {1})&amp;quot;, ANewPoint.X, ANewPoint.Y);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>