<?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%2FCSharp_Tutorial%2FNetwork%2FSOAP_Serialization</id>
		<title>Csharp/CSharp Tutorial/Network/SOAP Serialization - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FCSharp_Tutorial%2FNetwork%2FSOAP_Serialization"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Network/SOAP_Serialization&amp;action=history"/>
		<updated>2026-04-29T21:52:19Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Network/SOAP_Serialization&amp;diff=6854&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Network/SOAP_Serialization&amp;diff=6854&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:53Z</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/CSharp_Tutorial/Network/SOAP_Serialization&amp;diff=6855&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Network/SOAP_Serialization&amp;diff=6855&amp;oldid=prev"/>
				<updated>2010-05-26T12:20:35Z</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;==Call Soap service==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Net;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Xml;&lt;br /&gt;
using System.Xml.XPath;&lt;br /&gt;
public class CallSoap {&lt;br /&gt;
  private const string soapNS = &amp;quot;http://schemas.xmlsoap.org/soap/envelope/&amp;quot;;&lt;br /&gt;
  private const string yourNS = &amp;quot;http://yourName.ru&amp;quot;;&lt;br /&gt;
  private static readonly Encoding encoding = Encoding.UTF8;&lt;br /&gt;
  public static void Main(string [] args) {&lt;br /&gt;
    MemoryStream stream = new MemoryStream( );&lt;br /&gt;
    XmlTextWriter writer = new XmlTextWriter(stream,encoding);&lt;br /&gt;
    writer.WriteStartDocument( );&lt;br /&gt;
    writer.WriteStartElement(&amp;quot;soap&amp;quot;,&amp;quot;Envelope&amp;quot;,soapNS);&lt;br /&gt;
    writer.WriteStartElement(&amp;quot;Body&amp;quot;,soapNS);&lt;br /&gt;
    writer.WriteStartElement(&amp;quot;GetNumberInStock&amp;quot;,yourNS);&lt;br /&gt;
    writer.WriteElementString(&amp;quot;productCode&amp;quot;,&amp;quot;1111&amp;quot;);&lt;br /&gt;
    writer.WriteEndElement( ); &lt;br /&gt;
    writer.WriteEndElement( ); &lt;br /&gt;
    writer.WriteEndElement( ); &lt;br /&gt;
    writer.WriteEndDocument( );&lt;br /&gt;
    writer.Flush( );&lt;br /&gt;
    stream.Seek(0,SeekOrigin.Begin);&lt;br /&gt;
    StreamReader reader = new StreamReader(stream);&lt;br /&gt;
    string soap = reader.ReadToEnd( );&lt;br /&gt;
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(&amp;quot;http://127.0.0.1/myQuery.asmx&amp;quot;);&lt;br /&gt;
    request.Method = &amp;quot;POST&amp;quot;;&lt;br /&gt;
    request.ContentType = &amp;quot;text/xml; charset=&amp;quot; + encoding.HeaderName;&lt;br /&gt;
    request.ContentLength = soap.Length;&lt;br /&gt;
    request.Headers[&amp;quot;SOAPAction&amp;quot;] = &amp;quot;http://Product.ru/GetNumberInStock&amp;quot;;&lt;br /&gt;
    StreamWriter streamWriter = new StreamWriter(request.GetRequestStream( ));&lt;br /&gt;
    streamWriter.Write(soap);&lt;br /&gt;
    streamWriter.Flush( );&lt;br /&gt;
    WebResponse response = request.GetResponse( );&lt;br /&gt;
    Stream responseStream = response.GetResponseStream( );&lt;br /&gt;
    XPathDocument document = new XPathDocument(responseStream);&lt;br /&gt;
    XPathNavigator nav = document.CreateNavigator( );&lt;br /&gt;
    XPathNodeIterator nodes = nav.Select(&amp;quot;//Envelope/Body/GetNumberIn/GetNumberInResult&amp;quot;);&lt;br /&gt;
    Console.WriteLine(nodes.Current);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Invoke web service with Http Get==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Net;&lt;br /&gt;
using System.Xml.XPath;&lt;br /&gt;
public class GetNumberInStockHttpGet {&lt;br /&gt;
  public static void Main(string [] args) {&lt;br /&gt;
    WebRequest request = WebRequest.Create(&amp;quot;http://127.0.0.1/Query.asmx/GetNumber?pCode=1111&amp;quot;);&lt;br /&gt;
    request.Method = &amp;quot;GET&amp;quot;;&lt;br /&gt;
    WebResponse response = request.GetResponse( );&lt;br /&gt;
    Stream stream = response.GetResponseStream( );&lt;br /&gt;
    XPathDocument document = new XPathDocument(stream);&lt;br /&gt;
    XPathNavigator nav = document.CreateNavigator( );&lt;br /&gt;
    XPathNodeIterator nodes = nav.Select(&amp;quot;//int&amp;quot;);&lt;br /&gt;
    Console.WriteLine(nodes.Current);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Serialization of an object list in SOAP==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;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;
[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;
    [NonSerialized]&lt;br /&gt;
    int cacheValue;&lt;br /&gt;
}&lt;br /&gt;
[Serializable]&lt;br /&gt;
public class MyElementList&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;
class MainClass&lt;br /&gt;
{&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        MyElementList row = new MyElementList();&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 SOAP (XML), read it back&lt;br /&gt;
        Stream streamWrite = File.Create(&amp;quot;MyElementList.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;
        Stream streamRead = File.OpenRead(&amp;quot;MyElementList.xml&amp;quot;);&lt;br /&gt;
        SoapFormatter soapRead = new SoapFormatter();&lt;br /&gt;
        MyElementList rowSoap = (MyElementList) 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;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;Initial value&lt;br /&gt;
Gumby: 15&lt;br /&gt;
Pokey: 15&lt;br /&gt;
Values after SOAP serialization&lt;br /&gt;
Gumby: 0&lt;br /&gt;
Pokey: 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Serialize object to SOAP message==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;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.Soap;&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;
    [NonSerialized]&lt;br /&gt;
    int cacheValue;&lt;br /&gt;
}&lt;br /&gt;
class MainClass&lt;br /&gt;
{&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        MyElement ele = new MyElement(&amp;quot;name&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;, ele);&lt;br /&gt;
        &lt;br /&gt;
        // write to SOAP (XML), read it back&lt;br /&gt;
        Stream streamWrite = File.Create(&amp;quot;MyElement.xml&amp;quot;);&lt;br /&gt;
        SoapFormatter soapWrite = new SoapFormatter();&lt;br /&gt;
        soapWrite.Serialize(streamWrite, ele);&lt;br /&gt;
        streamWrite.Close();&lt;br /&gt;
        &lt;br /&gt;
        Stream streamRead = File.OpenRead(&amp;quot;MyElement.xml&amp;quot;);&lt;br /&gt;
        SoapFormatter soapRead = new SoapFormatter();&lt;br /&gt;
        MyElement element = (MyElement) 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;, element);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;Initial value&lt;br /&gt;
name: 15&lt;br /&gt;
Values after SOAP serialization&lt;br /&gt;
name: 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Soap Custom Serialization==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;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;
[Serializable]&lt;br /&gt;
class Employee: ISerializable&lt;br /&gt;
{&lt;br /&gt;
    int id;&lt;br /&gt;
    string name;&lt;br /&gt;
    string address;&lt;br /&gt;
    &lt;br /&gt;
    public Employee(int id, string name, string address)&lt;br /&gt;
    {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
        this.name = name;&lt;br /&gt;
        this.address = address;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public override string ToString()&lt;br /&gt;
    {&lt;br /&gt;
        return(String.Format(&amp;quot;{0} {1} {2}&amp;quot;, id, name, address));&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    Employee(SerializationInfo info, StreamingContext content)&lt;br /&gt;
    {&lt;br /&gt;
        id = info.GetInt32(&amp;quot;id&amp;quot;);&lt;br /&gt;
        name = info.GetString(&amp;quot;name&amp;quot;);&lt;br /&gt;
        address = info.GetString(&amp;quot;address&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    // called to save the object data        &lt;br /&gt;
    public void GetObjectData(SerializationInfo info, StreamingContext content)&lt;br /&gt;
    {&lt;br /&gt;
        info.AddValue(&amp;quot;id&amp;quot;, id);&lt;br /&gt;
        info.AddValue(&amp;quot;name&amp;quot;, name);&lt;br /&gt;
        info.AddValue(&amp;quot;address&amp;quot;, address);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
class MainClass&lt;br /&gt;
{&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        Employee employee = new Employee(15, &amp;quot;F&amp;quot;, &amp;quot;B&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        Stream streamWrite = File.Create(&amp;quot;emp.dat&amp;quot;);&lt;br /&gt;
        IFormatter writer = new SoapFormatter();&lt;br /&gt;
        writer.Serialize(streamWrite, employee);&lt;br /&gt;
        streamWrite.Close();&lt;br /&gt;
        Stream streamRead = File.OpenRead(&amp;quot;emp.dat&amp;quot;);&lt;br /&gt;
        IFormatter reader = new SoapFormatter();&lt;br /&gt;
        employee = (Employee) reader.Deserialize(streamRead);&lt;br /&gt;
        streamRead.Close();&lt;br /&gt;
        Console.WriteLine(&amp;quot;Employee: {0}&amp;quot;, employee);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;Employee: 15 F B&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>