Serialization of an object list in SOAP : SOAP Serialization « Network « C# / CSharp Tutorial

using System;
using System.IO;
using System.Collections;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization.Formatters.Soap;

public class MyElement
    public MyElement(string name)
    { = name;
        this.cacheValue = 15;
    public override string ToString()
        return(String.Format("{0}: {1}", name, cacheValue));
    string name;

    int cacheValue;

public class MyElementList
    public void Add(MyElement my)
    public override string ToString()
        string temp = null;
        foreach (MyElement my in row)
            temp += my.ToString() + "\n"; 
    ArrayList row = new ArrayList();    

class MainClass
    public static void Main()
        MyElementList row = new MyElementList();
        row.Add(new MyElement("Gumby"));
        row.Add(new MyElement("Pokey"));
        Console.WriteLine("Initial value");
        Console.WriteLine("{0}", row);
        // write to SOAP (XML), read it back
        Stream streamWrite = File.Create("MyElementList.xml");
        SoapFormatter soapWrite = new SoapFormatter();
        soapWrite.Serialize(streamWrite, row);
        Stream streamRead = File.OpenRead("MyElementList.xml");
        SoapFormatter soapRead = new SoapFormatter();
        MyElementList rowSoap = (MyElementList) soapRead.Deserialize(streamRead);
        Console.WriteLine("Values after SOAP serialization");
        Console.WriteLine("{0}", rowSoap);
Initial value
Gumby: 15
Pokey: 15

Values after SOAP serialization
Gumby: 0
Pokey: 0

33.31.SOAP Serialization
33.31.1.Serializes a class with Soap
33.31.2.Serialize object to SOAP message
33.31.3.Serialization of an object list in SOAP
33.31.4.Soap Custom Serialization
33.31.5.Invoke web service with Http Get
33.31.6.Call Soap service
33.31.7.Use SoapAttributeOverrides
33.31.8.Deserialize Soap type xml