Csharp/C Sharp by API/System.Xml.Serialization/XmlAttributeAttribute — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Версия 18:31, 26 мая 2010
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>