array.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using System;
  2. using System.IO;
  3. using System.Xml.Serialization;
  4. public class PurchaseOrder
  5. {
  6. public Item[] ItemsOrdered;
  7. }
  8. public class Item
  9. {
  10. public string ItemID;
  11. public decimal ItemPrice;
  12. /* Needed so it can be serialized */
  13. public Item()
  14. {}
  15. public Item(string id, decimal price)
  16. {
  17. ItemID=id;
  18. ItemPrice=price;
  19. }
  20. }
  21. public class Test
  22. {
  23. public static void Main()
  24. {
  25. Test t=new Test();
  26. t.Create("array.xml");
  27. t.Read("array.xml");
  28. }
  29. private void Create(string filename)
  30. {
  31. XmlSerializer ser=new XmlSerializer(typeof(PurchaseOrder));
  32. PurchaseOrder po=new PurchaseOrder();
  33. Item item1=new Item("aaa111", (decimal)34.22);
  34. Item item2=new Item("bbb222", (decimal)2.89);
  35. po.ItemsOrdered=new Item[2];
  36. po.ItemsOrdered[0]=item1;
  37. po.ItemsOrdered[1]=item2;
  38. TextWriter writer=new StreamWriter(filename);
  39. ser.Serialize(writer, po);
  40. writer.Close();
  41. }
  42. private void Read(string filename)
  43. {
  44. XmlSerializer ser=new XmlSerializer(typeof(PurchaseOrder));
  45. FileStream fs=new FileStream(filename, FileMode.Open);
  46. PurchaseOrder po;
  47. po=(PurchaseOrder)ser.Deserialize(fs);
  48. fs.Close();
  49. foreach(Item item in po.ItemsOrdered)
  50. {
  51. Console.WriteLine("Item: "+item.ItemID);
  52. Console.WriteLine("Price: "+item.ItemPrice);
  53. }
  54. }
  55. }