Mega Code Archive

 
Categories / C# Tutorial / Network
 

Serialization of an object list in SOAP

using System; using System.IO; using System.Collections; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.Runtime.Serialization.Formatters.Soap; [Serializable] public class MyElement {     public MyElement(string name)     {         this.name = name;         this.cacheValue = 15;     }     public override string ToString()     {         return(String.Format("{0}: {1}", name, cacheValue));     }     string name;     [NonSerialized]     int cacheValue; } [Serializable] public class MyElementList {     public void Add(MyElement my)     {         row.Add(my);     }          public override string ToString()     {         string temp = null;         foreach (MyElement my in row)             temp += my.ToString() + "\n";          return(temp);     }          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);         streamWrite.Close();                  Stream streamRead = File.OpenRead("MyElementList.xml");         SoapFormatter soapRead = new SoapFormatter();         MyElementList rowSoap = (MyElementList) soapRead.Deserialize(streamRead);         streamRead.Close();                  Console.WriteLine("Values after SOAP serialization");         Console.WriteLine("{0}", rowSoap);              } } Initial value Gumby: 15 Pokey: 15 Values after SOAP serialization Gumby: 0 Pokey: 0