using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using System.Xml; using System.Xml.Serialization; public class MainClass { public static void Main() { Product pd = new Product(); pd.ProductID = 200; pd.CategoryID = 100; pd.Discontinued = false; pd.ProductName = "Serialize Objects"; pd.QuantityPerUnit = "6"; pd.ReorderLevel = 1; pd.SupplierID = 1; pd.UnitPrice = 1000; pd.UnitsInStock = 10; pd.UnitsOnOrder = 0; TextWriter tr = new StreamWriter("serialprod.xml"); XmlSerializer sr = new XmlSerializer(typeof(Product)); sr.Serialize(tr, pd); tr.Close(); } } [System.Xml.Serialization.XmlRootAttribute()] public class Product { private int prodId; private string prodName; private int suppId; private int catId; private string qtyPerUnit; private Decimal unitPrice; private short unitsInStock; private short unitsOnOrder; private short reorderLvl; private bool discont; private int disc; //added the Discount attribute [XmlAttributeAttribute(AttributeName = "Discount")] public int Discount { get { return disc; } set { disc = value; } } [XmlElementAttribute()] public int ProductID { get { return prodId; } set { prodId = value; } } [XmlElementAttribute()] public string ProductName { get { return prodName; } set { prodName = value; } } [XmlElementAttribute()] public int SupplierID { get { return suppId; } set { suppId = value; } } [XmlElementAttribute()] public int CategoryID { get { return catId; } set { catId = value; } } [XmlElementAttribute()] public string QuantityPerUnit { get { return qtyPerUnit; } set { qtyPerUnit = value; } } [XmlElementAttribute()] public Decimal UnitPrice { get { return unitPrice; } set { unitPrice = value; } } [XmlElementAttribute()] public short UnitsInStock { get { return unitsInStock; } set { unitsInStock = value; } } [XmlElementAttribute()] public short UnitsOnOrder { get { return unitsOnOrder; } set { unitsOnOrder = value; } } [XmlElementAttribute()] public short ReorderLevel { get { return reorderLvl; } set { reorderLvl = value; } } [XmlElementAttribute()] public bool Discontinued { get { return discont; } set { discont = value; } } } public class Inventory { private Product[] stuff; public Inventory() { } [XmlArrayItem("Prod", typeof(Product)), XmlArrayItem("Book", typeof(BookProduct))] public Product[] InventoryItems { get { return stuff; } set { stuff = value; } } } public class BookProduct : Product { private string isbnNum; public BookProduct() { } public string ISBN { get { return isbnNum; } set { isbnNum = value; } } }