private void button1_Click(object sender, System.EventArgs e) {
// ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ ΠΊΠ½ΠΈΠΆΠ½ΠΎΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΈ
Product newProd=new Product();
BookProduct newBook=new BookProduct();
// Π·Π°Π΄Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°
newProd.ProductID=100;
newProd.ProductName="Product Thing";
newProd.SupplierID=10;
newBook.ProductID=101;
newBook.ProductName="How to Use Your New Product Thing";
newBook.SupplierID=10;
newBook.ISBN="123456789";
//ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²
Product[] addProd={newProd, newBook};
// Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Inventory Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° addProd
Inventory inv=new Inventory();
inv.InventoryItems=addProd;
// ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ Inventory
TextWriter tr=new StreamWriter("..\\..\\..\\order.xml");
XmlSerializer sr=new XmlSerializer(typeof(Inventory));
sr.Serialize(tr, inv);
tr.Close();
}
ΠΡΠΌΠ΅ΡΠΈΠΌ Π² ΡΠΎΠ±ΡΡΠΈΠΈ button2_Click, ΡΡΠΎ ΠΌΡ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ ΠΌΠ°ΡΡΠΈΠ² Π²ΠΎ Π²Π½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ newInv, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΡΠΎ ΡΠ΅ ΠΆΠ΅ Π΄Π°Π½Π½ΡΠ΅:
private void button2_Click(object sender, System.EventArgs e) {
Inventory newInv;
FileStream f=new FileStream("..\\..\\..\\order.xml", FileMode.Open);
XmlSerializer newSr=new XmlSerializer(typeof{Inventory));
newInv=(Inventory)newSr.Deserialize(f);
foreach(Product prod in newInv.Inventory Items) listBox1.Items.Add(prod.ProductName);
f.Close();
}
public class inventory {
private Product[] stuff;
public Inventory() {}
ΠΡ ΠΈΠΌΠ΅Π΅ΠΌ XmlArrayItem Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΠΌΠ°ΡΡΠΈΠ². ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ XML. ΠΡΠ»ΠΈ ΠΎΠΏΡΡΡΠΈΡΡ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ElementName, ΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΈΠΌΡ ΡΠΈΠΏΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Product ΠΈ BookProduct). Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ»Π°ΡΡ XmlArrayAttribute, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ². Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ XmlArrayItemAttribute, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ:
// Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅ΡΡ Π·Π°ΠΏΠΈΡΡ Π°ΡΡΠΈΠ±ΡΡΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ
[XmlArrayItem("Prod", typeof(Product)), XmlArrayItem("Book", typeof(BookProduct))]
//public Inventory(Product [] InventoryItems) {
// stuff=InventoryItems;
//}
public Product[] InventoryItems {
get {return stuff;}
set {stuff=value;}
}
}
//ΠΊΠ»Π°ΡΡ Product
public class Product {
private int prodId;
private string prodName;
private int suppId;
public Product() {}
public int ProductID {
get {return prodId;}
set {prodId=value;}
}
public string ProductName {
get {return prodName;}
set {prodName=value;}
}
public int SupplierID {
get {return suppId;}
set {suppId=value;}
}
}
// ΠΠ»Π°ΡΡ Bookproduct
public class BookProduct: Product {
private string isbnNum;
public BookProduct() {}
public string ISBN {
get {return isbnNum;}
set {isbnNum=value;}
}
}
Π ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π΄Π²Π° Π½ΠΎΠ²ΡΡ ΠΊΠ»Π°ΡΡΠ°. ΠΠ»Π°ΡΡ Inventory Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠΎ, ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π½Π° ΡΠΊΠ»Π°Π΄. ΠΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ»Π°ΡΡΠ° Product ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡΠ° BookProduct, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ Product. Π ΠΊΠ»Π°ΡΡΠ΅ Inventory ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΌΠ°ΡΡΠΈΠ² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ Π² Π½Π΅ΠΌ ΠΌΠΎΠ³ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΠΊΠ°ΠΊ BookProducts, ΡΠ°ΠΊ ΠΈ Products. ΠΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ XML:
<?xml version="1.0" ?>
<Inventory xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<InventoryItems>
<Prod>
<ProductID>100</ProductID>
<ProductName>Product Thing</ProductName>
<SupplierID>10</SupplierID>
</Prod>
<Book>
<ProductID>101</ProductID>
<ProductName>How to Use Your New Product Thing</ProductName>
<SupplierID>10</SupplierID>
<ISBN>123456789</ISBN>
</Book>
</InventoryItems>
</Inventory>
ΠΡΠ΅ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ, Π½ΠΎ ΠΊΠ°ΠΊ Π±ΡΡΡ Π² ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ ΡΠΈΠΏΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡΡΡ? ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π°ΡΡΠΈΠ±ΡΡ, Π΅ΡΠ»ΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±. ΠΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ XmlAttributes ΠΈ XmlAtrtributeOverrides. ΠΠΌΠ΅ΡΡΠ΅ ΡΡΠΈ ΠΊΠ»Π°ΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠΎ, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ, Π½ΠΎ Π±Π΅Π· Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ². ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠΉΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ SerialSample4:
private void button1_Click(object sender, System.EventArgs e) {
// ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ XmlAttributes XmlAttributes attrs=new XmlAttributes();
// Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΈΠΏΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ
attrs.XmlElements.Add(new XmlElementAttribute("Book", typeof(BookProduct)));
attrs.XmlElements.Add(new XmlElementAttribute("Product", typeof(Product)));
XmlAttributeOverrides attrOver=new XmlAttributeOverrides();
//Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ Π°ΡΡΠΈΠ±ΡΡΠΎΠ²
attrOver.Add(typeof(Inventory), "InventoryItems", attrs);
// ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Product ΠΈ Book
Product newProd=new Product();
BookProduct newBook=new BookProduct();
newProd.ProductID=100;
newProd.ProductName="Product Thing";
newProd.SupplierID=10;
newBook.ProductID=101;
newBook.ProductName="How to Use Your New Product Thing";
newBook.SupplierID=10;
newBook.ISBN="123456789";
Product[] addProd={newProd, newBook};
//Product[] addProd={newBook};
Inventory inv=new Inventory();
inv.InventoryItems=addProd;
TextWriter tr=new StreamWriter("..\\..\\..\\inventory.xml");
XmlSerializer sr=new XmlSerializer(typeof(Inventory), attrOver);
sr.Serialize(tr, inv);
tr.Close();
}
private void button2_Click(object sender, System.EventArgs e) {
//Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΎΡ ΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ Π΄Π»Ρ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
// ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ XmlAttributes
XmlAttributes attrs=new XmlAttributes();
// Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ΅ ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
attrs.XmlElements.Add(new XmlElementAttribute("Book", typeof(BookProduct)));
attrs.XmlElements.Add(new XmlElementAttribute("Product", typeof(Product)));
XmlAttributeOverrides attrOver=new XmlAttributeOverrides();
//Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Attributes (Π°ΡΡΠΈΠ±ΡΡΠΎΠ²)
attrOver.Add(typeof(Inventory), "InventoryItems", attrs);
//Π½ΡΠΆΠ΅Π½ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Inventory Π΄Π»Ρ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΉ Π² Π½Π΅Π³ΠΎ
Inventory newInv;
// Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΎΠΊΠ½ΠΎ ΡΠΏΠΈΡΠΊΠ° ΠΈΠ·
// Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
FileStream f=new FileStream("..\\..\\..\\inventory.xml", FileMode.Open);
XmlSerializer newSr=new XmlSerializer(typeof(Inventory).attrOver);
newInv=(Inventory)newSr.Deserialize(f);
if (newInv!=null) {
foreach(Product prod in newInv.InventoryItems) listBox1.Items.Add(prod.ProductName);
}
f.Close();
}
// ΡΡΠΎ ΡΠ΅ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΡ, ΡΡΠΎ ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅
// Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ²
// ΠΈΠ· ΡΠ²ΠΎΠΉΡΡΠ²Π° InventoryItems Π΄Π»Ρ Inventory
public class Inventory {
private Product[] stuff;
public Inventory() {}
public Product[] InventoryItems {
get {return stuff;}
set {stuff=value;}
}
}
public class Product {
private int prodId;
private string prodName;
private int suppId;
public Product() {}
public int ProductID {
get {return prodId;}
set {prodId=value;}
}
public string ProductName {
get {return prodName;}
set {prodName=value;}
}
public int SupplierID {
get {return suppId;}
set {suppId=value;}
}
}
public class BookProduct:Product {
private string isbnNum;
public BookProduct() {}
public string ISBN {
get {return isbnNum;}
set {isbnNum=value;}
}
}
ΠΡΠΎ ΡΠΎΡ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎ ΠΈ ΡΠ°Π½ΡΡΠ΅, Π½ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ,β Π·Π΄Π΅ΡΡ Π½Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΡ Π² ΠΊΠ»Π°ΡΡ Inventory Π°ΡΡΠΈΠ±ΡΡΠΎΠ². ΠΠΎΡΡΠΎΠΌΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ ΠΊΠ»Π°ΡΡΡ Inventory, Product ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ ΠΊΠ»Π°ΡΡ BookProduct Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ DLL, ΠΈ Ρ Π½Π°Ρ Π½Π΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ XmlAttributes, ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° XmlElementAttribute Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ:
XmlAttributes attrs=new XmlAttributes();
attrs.XmlElements.Add(new XmlElementAttribute("Book", typeof(BookProduct)));
attrs.XmlElements.Add(new XmlElementAttribute("Product", typeof(Product)));
ΠΠ΄Π΅ΡΡ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½ΠΎΠ²ΡΠΉ XmlElementAttribute ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ XmlElements ΠΊΠ»Π°ΡΡΠ° XmlAttributes. ΠΠ»Π°ΡΡ XmlAttributes ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ; XmlArray ΠΈ XmlArrayItems, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΡΠ²Π»ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΡΠΎΠΉ. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ XmlAttributes Ρ Π΄Π²ΡΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ XmlElementAttribute, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠΌΠΈ ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ XmlElements. ΠΠ°Π»Π΅Π΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ XmlAttributeOverrides:
XmlAttributeOverrides attrOver = new XmlAttributeOverride();
attrOver.Add(typeof(Inventory) , "Inventory Items", attrs);