Serialize/Deserialize Xml : Xml serialization : XML C# Examples


C# Examples » XML » Xml serialization »

 

Serialize/Deserialize Xml









    
using  System;
using  System.Xml;
using  System.Xml.Serialization;
using  System.IO;

public  class  MainClass
{
    private  static  void  Main()
    {
        //  Create  the  product  catalog.
        ProductCatalog  catalog  =  new  ProductCatalog("New  Catalog",  DateTime.Now.AddYears(1));
        Product[]  products  =  new  Product[2];
        products[0]  =  new  Product("Product  1",  42.99m);
        products[1]  =  new  Product("Product  2",  202.99m);
        catalog.Products  =  products;

        //  Serialize  the  order  to  a  file.
        XmlSerializer  serializer  =  new  XmlSerializer(typeof(ProductCatalog));
        FileStream  fs  =  new  FileStream("ProductCatalog.xml",  FileMode.Create);
        serializer.Serialize(fs,  catalog);
        fs.Close();

        catalog  =  null;

        fs  =  new  FileStream("ProductCatalog.xml",  FileMode.Open);
        catalog  =  (ProductCatalog)serializer.Deserialize(fs);

        serializer.Serialize(Console.Out,  catalog);
    }
}

[XmlRoot("productCatalog")]
public  class  ProductCatalog  
{
    [XmlElement("catalogName")]
    public  string  CatalogName;

    [XmlElement(ElementName="expiryDate",  DataType="date")]
    public  DateTime  ExpiryDate;

    [XmlArray("products")]
    [XmlArrayItem("product")]
        public  Product[]  Products;

    public  ProductCatalog()
    {
    }

    public  ProductCatalog(string  catalogName,  DateTime  expiryDate)
    {
        this.CatalogName  =  catalogName;
        this.ExpiryDate  =  expiryDate;
    }
}


public  class  Product  
{
    [XmlElement("productName")]
    public  string  ProductName;

    [XmlElement("productPrice")]
    public  decimal  ProductPrice;

    [XmlElement("inStock")]
    public  bool  InStock;

    [XmlAttributeAttribute(AttributeName="id",  DataType="integer")]
    public  string  Id;

    public  Product()
    {
    }

    public  Product(string  productName,  decimal  productPrice)
    {
        this.ProductName  =  productName;
        this.ProductPrice  =  productPrice;
    }
}
    
   
  
   



Output

New Catalog2008-03-25Product 142.99falseProduct 2202.99false


HTML code for linking to this page:

Follow Navioo On Twitter

C# Examples

 Navioo XML
» Xml serialization