Ватсон Карли
Шрифт:
pd.UnitPrice=1000;
pd.UnitsInStock=10;
pd.UnitsOnOrder= 0;
pd.Discount=2;
//новые TextWriter и XmlSerializer
TextWriter tr=new StreamWriter("..\\..\\..\\serialprod1.xml");
XmlSerializer sr=new XmlSerializer(typeof(Products));
// сериализируем объект
sr.Serialize(tr, pd);
tr.Close;
}
private void button2_Click(object sender, System.EventArgs e) {
//создать ссылку на тип Products
Products newPd;
// новый файловый поток для открытия сериализуемого объекта
FileStream f=new FileStream("..\\..\\..\\serialprod1.xml", FileMode.Open);
// новый сериализатор
XmlSerializer newSr=new XmlSerializer(typeof(Products));
//десериализуем объект
newPd=(Products)newSr.Deserialize(f);
//загрузить его в окно списка.
listBox1.Items.Add(newPd.ProductName);
f.Close;
}
//класс, который будет сериализован.
//атрибуты определяют, как объект сериализуется
[System.Xml.Serialization.XmlRootAttribute]
public class Products {
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;
// добавлен атрибут Discount
[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 unitsOrOrder;}
set {unitsOnOrder=value;}
}
[XmlElementAttribute]
public short ReorderLevel {
get {return reorderLvl;}
set {reorderLvl=value;}