Csharp/C Sharp by API/System.Xml.Serialization/XmlAttributeAttribute

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

mark XmlAttributeAttribute

<source lang="csharp">

using System; using System.IO; using System.Xml; using System.Xml.Serialization; [XmlRoot("productCatalog")] 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;
   }

}

public class MainClass {

   private static void Main() {
       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;
       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);
   }

}


 </source>


XmlAttributeAttribute.AttributeName

<source lang="csharp">

using System; using System.Collections.Generic; using System.ruponentModel; 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; }
   }

}


 </source>