<?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%2FXML%2FXml_serialization</id>
		<title>Csharp/CSharp Tutorial/XML/Xml 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%2FXML%2FXml_serialization"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/XML/Xml_serialization&amp;action=history"/>
		<updated>2026-04-30T07:48:27Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/XML/Xml_serialization&amp;diff=5860&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/XML/Xml_serialization&amp;diff=5860&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/XML/Xml_serialization&amp;diff=5861&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/XML/Xml_serialization&amp;diff=5861&amp;oldid=prev"/>
				<updated>2010-05-26T12:17:33Z</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;==Serialization of an object marked with XmlAttribute and XmlIgnore==&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.Xml.Serialization;&lt;br /&gt;
    public class Customer&lt;br /&gt;
    {&lt;br /&gt;
        [XmlAttribute()]&lt;br /&gt;
        public string FirstName { get; set; }&lt;br /&gt;
        [XmlIgnore()]&lt;br /&gt;
        public string LastName { get; set; }&lt;br /&gt;
        public string EmailAddress { get; set; }&lt;br /&gt;
        public override string ToString()&lt;br /&gt;
        {&lt;br /&gt;
            return string.Format(&amp;quot;{0} {1}\nEmail:   {2}&amp;quot;,FirstName, LastName, EmailAddress);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public class Tester&lt;br /&gt;
    {&lt;br /&gt;
        static void Main()&lt;br /&gt;
        {&lt;br /&gt;
            Customer c1 = new Customer{&lt;br /&gt;
                              FirstName = &amp;quot;A&amp;quot;,&lt;br /&gt;
                              LastName = &amp;quot;B&amp;quot;,&lt;br /&gt;
                              EmailAddress = &amp;quot;o@a.ru&amp;quot;&lt;br /&gt;
                          };&lt;br /&gt;
            XmlSerializer serializer = new XmlSerializer(typeof(Customer));&lt;br /&gt;
            StringWriter writer = new StringWriter();&lt;br /&gt;
            serializer.Serialize(writer, c1);&lt;br /&gt;
            string xml = writer.ToString();&lt;br /&gt;
            Console.WriteLine(&amp;quot;Customer in XML:\n{0}\n&amp;quot;, xml);&lt;br /&gt;
            Customer c2 = serializer.Deserialize(new StringReader(xml)) as Customer;&lt;br /&gt;
            Console.WriteLine(&amp;quot;Customer in Object:\n{0}&amp;quot;, c2.ToString());&lt;br /&gt;
        }&lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Serialize a list of object to Xml with Linq==&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.Collections.Generic;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Xml;&lt;br /&gt;
    public class Customer{&lt;br /&gt;
        public string FirstName { get; set; }&lt;br /&gt;
        public string LastName { get; set; }&lt;br /&gt;
        public string EmailAddress { get; set; }&lt;br /&gt;
        public override string ToString()&lt;br /&gt;
        {&lt;br /&gt;
            return string.Format(&amp;quot;{0} {1}\nEmail:   {2}&amp;quot;,FirstName, LastName, EmailAddress);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public class Tester{&lt;br /&gt;
        static void Main(){&lt;br /&gt;
            List&amp;lt;Customer&amp;gt; customers = new List&amp;lt;Customer&amp;gt;{&lt;br /&gt;
                new Customer { FirstName = &amp;quot;A&amp;quot;, &lt;br /&gt;
                               LastName = &amp;quot;G&amp;quot;,&lt;br /&gt;
                               EmailAddress = &amp;quot;o@a.ru&amp;quot;},&lt;br /&gt;
                new Customer { FirstName = &amp;quot;B&amp;quot;, &lt;br /&gt;
                               LastName = &amp;quot;C&amp;quot;,&lt;br /&gt;
                               EmailAddress = &amp;quot;k@a.ru&amp;quot; },&lt;br /&gt;
                new Customer { FirstName = &amp;quot;D&amp;quot;, &lt;br /&gt;
                               LastName = &amp;quot;C&amp;quot;,&lt;br /&gt;
                               EmailAddress = &amp;quot;d@a.ru&amp;quot; },&lt;br /&gt;
                new Customer { FirstName = &amp;quot;E&amp;quot;, &lt;br /&gt;
                               LastName = &amp;quot;G&amp;quot;,&lt;br /&gt;
                               EmailAddress = &amp;quot;j@a.ru&amp;quot; },&lt;br /&gt;
                new Customer { FirstName = &amp;quot;L&amp;quot;, &lt;br /&gt;
                               LastName = &amp;quot;H&amp;quot;,&lt;br /&gt;
                               EmailAddress = &amp;quot;l@a.ru&amp;quot; }&lt;br /&gt;
            };&lt;br /&gt;
            XmlDocument customerXml = new XmlDocument();&lt;br /&gt;
            XmlElement rootElem = customerXml.CreateElement(&amp;quot;Customers&amp;quot;);&lt;br /&gt;
            customerXml.AppendChild(rootElem);&lt;br /&gt;
            foreach (Customer customer in customers){&lt;br /&gt;
                XmlElement customerElem = customerXml.CreateElement(&amp;quot;Customer&amp;quot;);&lt;br /&gt;
                XmlAttribute firstNameAttr = customerXml.CreateAttribute(&amp;quot;FirstName&amp;quot;);&lt;br /&gt;
                firstNameAttr.Value = customer.FirstName;&lt;br /&gt;
                customerElem.Attributes.Append(firstNameAttr);&lt;br /&gt;
                XmlAttribute lastNameAttr = customerXml.CreateAttribute(&amp;quot;LastName&amp;quot;);&lt;br /&gt;
                lastNameAttr.Value = customer.LastName;&lt;br /&gt;
                customerElem.Attributes.Append(lastNameAttr);&lt;br /&gt;
                XmlElement emailAddress = customerXml.CreateElement(&amp;quot;EmailAddress&amp;quot;);&lt;br /&gt;
                emailAddress.InnerText = customer.EmailAddress;&lt;br /&gt;
                customerElem.AppendChild(emailAddress);&lt;br /&gt;
                rootElem.AppendChild(customerElem);&lt;br /&gt;
            }&lt;br /&gt;
            Console.WriteLine(customerXml.OuterXml);&lt;br /&gt;
        }&lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Serialize/Deserialize Xml: deal with element list==&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.Xml;&lt;br /&gt;
using System.Xml.Serialization;&lt;br /&gt;
using System.IO;&lt;br /&gt;
public class MainClass&lt;br /&gt;
{&lt;br /&gt;
  private static void Main()&lt;br /&gt;
  {&lt;br /&gt;
    // Create the product catalog.&lt;br /&gt;
    ProductCatalog catalog = new ProductCatalog(&amp;quot;New Catalog&amp;quot;, DateTime.Now.AddYears(1));&lt;br /&gt;
    Product[] products = new Product[2];&lt;br /&gt;
    products[0] = new Product(&amp;quot;Product 1&amp;quot;, 42.99m);&lt;br /&gt;
    products[1] = new Product(&amp;quot;Product 2&amp;quot;, 202.99m);&lt;br /&gt;
    catalog.Products = products;&lt;br /&gt;
    // Serialize the order to a file.&lt;br /&gt;
    XmlSerializer serializer = new XmlSerializer(typeof(ProductCatalog));&lt;br /&gt;
    FileStream fs = new FileStream(&amp;quot;ProductCatalog.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;
    fs = new FileStream(&amp;quot;ProductCatalog.xml&amp;quot;, FileMode.Open);&lt;br /&gt;
    catalog = (ProductCatalog)serializer.Deserialize(fs);&lt;br /&gt;
    serializer.Serialize(Console.Out, catalog);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
[XmlRoot(&amp;quot;productCatalog&amp;quot;)]&lt;br /&gt;
public class ProductCatalog &lt;br /&gt;
{&lt;br /&gt;
  [XmlElement(&amp;quot;catalogName&amp;quot;)]&lt;br /&gt;
  public string CatalogName;&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;
  [XmlArray(&amp;quot;products&amp;quot;)]&lt;br /&gt;
  [XmlArrayItem(&amp;quot;product&amp;quot;)]&lt;br /&gt;
    public Product[] Products;&lt;br /&gt;
  public ProductCatalog()&lt;br /&gt;
  {&lt;br /&gt;
  }&lt;br /&gt;
  public ProductCatalog(string catalogName, DateTime expiryDate)&lt;br /&gt;
  {&lt;br /&gt;
    this.CatalogName = catalogName;&lt;br /&gt;
    this.ExpiryDate = expiryDate;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class Product &lt;br /&gt;
{&lt;br /&gt;
  [XmlElement(&amp;quot;productName&amp;quot;)]&lt;br /&gt;
  public string ProductName;&lt;br /&gt;
  [XmlElement(&amp;quot;productPrice&amp;quot;)]&lt;br /&gt;
  public decimal ProductPrice;&lt;br /&gt;
  [XmlElement(&amp;quot;inStock&amp;quot;)]&lt;br /&gt;
  public bool InStock;&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 Product()&lt;br /&gt;
  {&lt;br /&gt;
  }&lt;br /&gt;
  public Product(string productName, decimal productPrice)&lt;br /&gt;
  {&lt;br /&gt;
    this.ProductName = productName;&lt;br /&gt;
    this.ProductPrice = productPrice;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;gb2312&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;productCatalog xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2&lt;br /&gt;
001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;catalogName&amp;gt;New Catalog&amp;lt;/catalogName&amp;gt;&lt;br /&gt;
  &amp;lt;expiryDate&amp;gt;2008-03-25&amp;lt;/expiryDate&amp;gt;&lt;br /&gt;
  &amp;lt;products&amp;gt;&lt;br /&gt;
    &amp;lt;product&amp;gt;&lt;br /&gt;
      &amp;lt;productName&amp;gt;Product 1&amp;lt;/productName&amp;gt;&lt;br /&gt;
      &amp;lt;productPrice&amp;gt;42.99&amp;lt;/productPrice&amp;gt;&lt;br /&gt;
      &amp;lt;inStock&amp;gt;false&amp;lt;/inStock&amp;gt;&lt;br /&gt;
    &amp;lt;/product&amp;gt;&lt;br /&gt;
    &amp;lt;product&amp;gt;&lt;br /&gt;
      &amp;lt;productName&amp;gt;Product 2&amp;lt;/productName&amp;gt;&lt;br /&gt;
      &amp;lt;productPrice&amp;gt;202.99&amp;lt;/productPrice&amp;gt;&lt;br /&gt;
      &amp;lt;inStock&amp;gt;false&amp;lt;/inStock&amp;gt;&lt;br /&gt;
    &amp;lt;/product&amp;gt;&lt;br /&gt;
  &amp;lt;/products&amp;gt;&lt;br /&gt;
&amp;lt;/productCatalog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Specify format and indentation for object XML 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.Drawing;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.ruponentModel;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Xml;&lt;br /&gt;
using System.Xml.Serialization;&lt;br /&gt;
public class MainClass&lt;br /&gt;
{&lt;br /&gt;
  static void Main() &lt;br /&gt;
  {&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
      MemberList g = new MemberList( &amp;quot;group name&amp;quot; );&lt;br /&gt;
      g.members[0] = new Member( &amp;quot;mem 1&amp;quot; );&lt;br /&gt;
      g.members[1] = new Member( &amp;quot;mem 2&amp;quot; );&lt;br /&gt;
      g.members[2] = new Member( &amp;quot;mem 3&amp;quot; );&lt;br /&gt;
      StringWriter sw = new StringWriter();&lt;br /&gt;
      XmlTextWriter tw = new XmlTextWriter( sw );&lt;br /&gt;
      tw.Formatting = Formatting.Indented;&lt;br /&gt;
      tw.Indentation = 4;&lt;br /&gt;
      XmlSerializer ser = new XmlSerializer( typeof( MemberList ) );&lt;br /&gt;
      ser.Serialize( tw, g );&lt;br /&gt;
      tw.Close();&lt;br /&gt;
      sw.Close();&lt;br /&gt;
      Console.WriteLine(sw.ToString());&lt;br /&gt;
    }&lt;br /&gt;
    catch( Exception exc )&lt;br /&gt;
    {&lt;br /&gt;
      Console.WriteLine(exc.Message );&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MemberList&lt;br /&gt;
{&lt;br /&gt;
  public MemberList()&lt;br /&gt;
  {&lt;br /&gt;
    members = new Member[5];&lt;br /&gt;
  }&lt;br /&gt;
  public MemberList( string name ) : this()&lt;br /&gt;
  {&lt;br /&gt;
    m_name = name;&lt;br /&gt;
  }&lt;br /&gt;
  public string m_name;&lt;br /&gt;
  public Member[] members;&lt;br /&gt;
}&lt;br /&gt;
public class Member&lt;br /&gt;
{&lt;br /&gt;
  public Member()&lt;br /&gt;
  {&lt;br /&gt;
  }&lt;br /&gt;
  public Member( string name ) :this()&lt;br /&gt;
  {&lt;br /&gt;
    m_name = name;&lt;br /&gt;
  }&lt;br /&gt;
  public string m_name;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-16&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;MemberList xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/&lt;br /&gt;
XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;m_name&amp;gt;group name&amp;lt;/m_name&amp;gt;&lt;br /&gt;
    &amp;lt;members&amp;gt;&lt;br /&gt;
        &amp;lt;Member&amp;gt;&lt;br /&gt;
            &amp;lt;m_name&amp;gt;mem 1&amp;lt;/m_name&amp;gt;&lt;br /&gt;
        &amp;lt;/Member&amp;gt;&lt;br /&gt;
        &amp;lt;Member&amp;gt;&lt;br /&gt;
            &amp;lt;m_name&amp;gt;mem 2&amp;lt;/m_name&amp;gt;&lt;br /&gt;
        &amp;lt;/Member&amp;gt;&lt;br /&gt;
        &amp;lt;Member&amp;gt;&lt;br /&gt;
            &amp;lt;m_name&amp;gt;mem 3&amp;lt;/m_name&amp;gt;&lt;br /&gt;
        &amp;lt;/Member&amp;gt;&lt;br /&gt;
        &amp;lt;Member xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;Member xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/members&amp;gt;&lt;br /&gt;
&amp;lt;/MemberList&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Specify the XmlRoot and XmlAttribute for XML 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.Xml;&lt;br /&gt;
using System.Xml.Serialization;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.IO;&lt;br /&gt;
&lt;br /&gt;
[XmlRoot(&amp;quot;EmployeeList&amp;quot;)]&lt;br /&gt;
public class EmployeeList {&lt;br /&gt;
    private ArrayList employeeList = new ArrayList();&lt;br /&gt;
    public EmployeeList( ) {&lt;br /&gt;
    }&lt;br /&gt;
    [XmlElement(&amp;quot;employee&amp;quot;)]&lt;br /&gt;
     public Employee[] Employees {&lt;br /&gt;
        get { &lt;br /&gt;
            Employee[] employees = new Employee[ employeeList.Count ];&lt;br /&gt;
            employeeList.CopyTo( employees );&lt;br /&gt;
            return employees; &lt;br /&gt;
        }&lt;br /&gt;
        set { &lt;br /&gt;
            Employee[] employees = (Employee[])value;&lt;br /&gt;
            employeeList.Clear();&lt;br /&gt;
            foreach( Employee i in employees )&lt;br /&gt;
               employeeList.Add( i );&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public void AddEmployee( Employee employee ) {&lt;br /&gt;
        employeeList.Add( employee );&lt;br /&gt;
    }&lt;br /&gt;
    public Employee this[string firstName] {&lt;br /&gt;
        get {&lt;br /&gt;
            foreach( Employee i in employeeList )&lt;br /&gt;
                if( i.firstName == firstName )&lt;br /&gt;
                   return i;&lt;br /&gt;
            throw( new Exception(&amp;quot;Employee not found&amp;quot;) );&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public void DisplayEmployees( ) {&lt;br /&gt;
        foreach( Employee i in employeeList )&lt;br /&gt;
            Console.WriteLine( i );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class Employee {&lt;br /&gt;
     [XmlAttribute(&amp;quot;firstName&amp;quot;)]   public string  firstName;&lt;br /&gt;
     [XmlAttribute(&amp;quot;lastName&amp;quot;)]    public string  lastName;&lt;br /&gt;
     [XmlAttribute(&amp;quot;salary&amp;quot;)]      public double  salary;&lt;br /&gt;
     [XmlAttribute(&amp;quot;number&amp;quot;)]      public int     number;&lt;br /&gt;
    &lt;br /&gt;
     public Employee( ) {  }&lt;br /&gt;
     public Employee( string f, string l, double s, int n ) {&lt;br /&gt;
        firstName = f;&lt;br /&gt;
        lastName = l;&lt;br /&gt;
        salary = s;&lt;br /&gt;
        number = n;&lt;br /&gt;
     }&lt;br /&gt;
     public override string ToString( ) {&lt;br /&gt;
        object[] o = new object[] { firstName, lastName, salary, number };&lt;br /&gt;
        return string.Format(&amp;quot;{0,-5} {1,-10} ${2,5:#,###.00} {3,3}&amp;quot;, o);&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    public static void Main( ) {&lt;br /&gt;
        EmployeeList employList = new EmployeeList( );&lt;br /&gt;
        employList.AddEmployee( new Employee(&amp;quot;A&amp;quot;,&amp;quot;p&amp;quot;,  123.15,100) );&lt;br /&gt;
        employList.AddEmployee( new Employee(&amp;quot;B&amp;quot;,&amp;quot;c&amp;quot;,  712.50, 25) );&lt;br /&gt;
        employList.AddEmployee( new Employee(&amp;quot;C&amp;quot;,&amp;quot;wt&amp;quot;, 132.35, 10) );&lt;br /&gt;
        employList.DisplayEmployees( );&lt;br /&gt;
        Console.WriteLine(&amp;quot;Serialization in progress&amp;quot;);&lt;br /&gt;
        XmlSerializer s = new XmlSerializer( typeof( EmployeeList ) );&lt;br /&gt;
        TextWriter w = new StreamWriter(&amp;quot;employList.xml&amp;quot;);&lt;br /&gt;
        s.Serialize( w, employList );&lt;br /&gt;
        w.Close();&lt;br /&gt;
        Console.WriteLine(&amp;quot;Serialization complete\n\n&amp;quot;);&lt;br /&gt;
        Console.WriteLine(&amp;quot;Deserialization in progress&amp;quot;);&lt;br /&gt;
        EmployeeList employList2 = new EmployeeList( );&lt;br /&gt;
        TextReader r = new StreamReader( &amp;quot;employList.xml&amp;quot; );&lt;br /&gt;
        employList2 = (EmployeeList)s.Deserialize( r );&lt;br /&gt;
        r.Close( );&lt;br /&gt;
        Console.WriteLine(&amp;quot;Deserialization complete&amp;quot;);&lt;br /&gt;
        employList2.DisplayEmployees();&lt;br /&gt;
   }&lt;br /&gt;
    &lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;A     p          $123.15 100&lt;br /&gt;
B     c          $712.50  25&lt;br /&gt;
C     wt         $132.35  10&lt;br /&gt;
Serialization in progress&lt;br /&gt;
Serialization complete&lt;br /&gt;
&lt;br /&gt;
Deserialization in progress&lt;br /&gt;
Deserialization complete&lt;br /&gt;
A     p          $123.15 100&lt;br /&gt;
B     c          $712.50  25&lt;br /&gt;
C     wt         $132.35  10&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using XmlSerializer to Serialize a Linq object==&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.Xml.Serialization;&lt;br /&gt;
    public class Customer&lt;br /&gt;
    {&lt;br /&gt;
        public string FirstName;&lt;br /&gt;
        public string LastName;&lt;br /&gt;
        public string EmailAddress;&lt;br /&gt;
        public override string ToString()&lt;br /&gt;
        {&lt;br /&gt;
            return string.Format(&amp;quot;{0} {1}\nEmail:   {2}&amp;quot;,FirstName, LastName, EmailAddress);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public class Tester&lt;br /&gt;
    {&lt;br /&gt;
        static void Main()&lt;br /&gt;
        {&lt;br /&gt;
            Customer c1 = new Customer{&lt;br /&gt;
                              FirstName = &amp;quot;A&amp;quot;,&lt;br /&gt;
                              LastName = &amp;quot;G&amp;quot;,&lt;br /&gt;
                              EmailAddress = &amp;quot;o@a.ru&amp;quot;&lt;br /&gt;
                          };&lt;br /&gt;
            XmlSerializer serializer = new XmlSerializer(typeof(Customer));&lt;br /&gt;
            StringWriter writer = new StringWriter();&lt;br /&gt;
            serializer.Serialize(writer, c1);&lt;br /&gt;
            string xml = writer.ToString();&lt;br /&gt;
            Console.WriteLine(&amp;quot;Customer in XML:\n{0}\n&amp;quot;, xml);&lt;br /&gt;
            Customer c2 = serializer.Deserialize(new StringReader(xml)) as Customer;&lt;br /&gt;
            Console.WriteLine(&amp;quot;Customer in Object:\n{0}&amp;quot;, c2.ToString());&lt;br /&gt;
        }&lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==XML Serialization Sample==&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.Xml.Serialization;&lt;br /&gt;
  [XmlRoot(&amp;quot;cell-phone&amp;quot;)]&lt;br /&gt;
  public class CellPhone {&lt;br /&gt;
    public CellPhone () {&lt;br /&gt;
    }&lt;br /&gt;
    [XmlAttribute(&amp;quot;name&amp;quot;)]&lt;br /&gt;
    public string Name {&lt;br /&gt;
      get {return this._name;}&lt;br /&gt;
      set {this._name = value;}&lt;br /&gt;
    }&lt;br /&gt;
    [XmlAttribute(&amp;quot;year&amp;quot;)]&lt;br /&gt;
    public int Year {&lt;br /&gt;
      get {return this._year;}&lt;br /&gt;
      set {this._year = value;}&lt;br /&gt;
    }&lt;br /&gt;
    [XmlElement(&amp;quot;description&amp;quot;)]&lt;br /&gt;
    public string Description {&lt;br /&gt;
      get {return this._description;}&lt;br /&gt;
      set {this._description = value;}&lt;br /&gt;
    }&lt;br /&gt;
    private string _name = &amp;quot;&amp;quot;;&lt;br /&gt;
    private int _year = 2000;&lt;br /&gt;
    private string _description = &amp;quot;&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  class XMLSerializationSample {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
      XmlSerializer serializer = new XmlSerializer(Type.GetType(&amp;quot;CellPhone&amp;quot;));&lt;br /&gt;
      CellPhone cellPhone = new CellPhone();&lt;br /&gt;
      cellPhone.Description = &amp;quot;Some description&amp;quot;;&lt;br /&gt;
      cellPhone.Name = &amp;quot;AAA&amp;quot;;&lt;br /&gt;
      serializer.Serialize(Console.Out, cellPhone);&lt;br /&gt;
    }&lt;br /&gt;
  }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==XML serialization with namespace setting==&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.Collections;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Xml;&lt;br /&gt;
using System.Xml.Serialization;&lt;br /&gt;
class MainClass{&lt;br /&gt;
  public static void Main(){&lt;br /&gt;
     try {&lt;br /&gt;
         ShapedRoot sr = new ShapedRoot();&lt;br /&gt;
         sr.node = new Shaped();&lt;br /&gt;
         sr.node.s1 = &amp;quot;a value&amp;quot;;&lt;br /&gt;
         sr.node.s2 = &amp;quot;another value&amp;quot;;&lt;br /&gt;
         sr.node.s3 = &amp;quot;uuid:1AE0964A-2B30-4a02-96F2-325B92B4E92C&amp;quot;;&lt;br /&gt;
         StringWriter sw = new StringWriter();&lt;br /&gt;
         XmlTextWriter tw = new XmlTextWriter( sw );&lt;br /&gt;
         tw.Formatting = Formatting.Indented;&lt;br /&gt;
         tw.Indentation = 4;&lt;br /&gt;
         XmlSerializer ser = new XmlSerializer( typeof( ShapedRoot ) );&lt;br /&gt;
         ser.Serialize( tw, sr );&lt;br /&gt;
         tw.Close();&lt;br /&gt;
         sw.Close();&lt;br /&gt;
     }&lt;br /&gt;
     catch( Exception exc )&lt;br /&gt;
     {&lt;br /&gt;
         Console.WriteLine( exc.Message );&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
[XmlRoot( ElementName=&amp;quot;sroot&amp;quot;, Namespace=&amp;quot;urn:my-examples:shaping&amp;quot; )]&lt;br /&gt;
public class ShapedRoot&lt;br /&gt;
{&lt;br /&gt;
    public ShapedRoot()&lt;br /&gt;
    {&lt;br /&gt;
    }&lt;br /&gt;
    public Shaped node;&lt;br /&gt;
}&lt;br /&gt;
[XmlType( Namespace=&amp;quot;urn:my-examples:shaping&amp;quot; )]&lt;br /&gt;
public class Shaped&lt;br /&gt;
{&lt;br /&gt;
    public Shaped()&lt;br /&gt;
    {&lt;br /&gt;
    }&lt;br /&gt;
    [XmlAttribute]&lt;br /&gt;
    public string s1;&lt;br /&gt;
    [XmlElement( ElementName = &amp;quot;string2&amp;quot; )]&lt;br /&gt;
    public string s2;&lt;br /&gt;
    [XmlElement( DataType = &amp;quot;anyURI&amp;quot; )]&lt;br /&gt;
    public string s3;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>