XML序列化
今天写文件时,突然忘了这么一个重要的方法.. 记下来吧/
代码
// 调用
DeSerializeDocument("d:\\books.xml");
public MyRootClass DeSerializeDocument(string filename)
{
XmlSerializer s = new XmlSerializer(typeof(MyRootClass));
TextReader myRead = new StreamReader(filename);
MyRootClass obj = s.Deserialize(myRead) as MyRootClass;
return obj;
}
public void SerializeDocument(string filename)
{ // Creates a new XmlSerializer.
XmlSerializer s = new XmlSerializer(typeof(MyRootClass));
// Writing the file requires a StreamWriter.
TextWriter myWriter = new StreamWriter(filename);
// Creates an instance of the class to serialize.
MyRootClass myRootClass = new MyRootClass();
//create items
Item item1 = new Item();
// Sets the objects' properties.
item1.ItemName = "Widget1";
item1.ItemCode = "w1";
item1.ItemPrice = 231;
item1.ItemQuantity = 3;
Item item2 = new Item();
item2.ItemName = "Widget2";
item2.ItemCode = "w2";
item2.ItemPrice = 800;
item2.ItemQuantity = 2; // Sets the class's Items property to the list.
myRootClass.Items.Add(item1);
myRootClass.Items.Add(item2); /* Serializes the class, writes it to
disk, and closes the TextWriter. */
s.Serialize(myWriter, myRootClass);
myWriter.Close();
}
}
[Serializable]
public class MyRootClass
{
public MyRootClass()
{
items =new List<Item>();
}
private List<Item> items;
public List<Item> Items
{
get { return items; }
set { items = value; }
}
}
public class Item
{
public string ItemName;
public string ItemCode;
public decimal ItemPrice;
public int ItemQuantity;
}
DeSerializeDocument("d:\\books.xml");
public MyRootClass DeSerializeDocument(string filename)
{
XmlSerializer s = new XmlSerializer(typeof(MyRootClass));
TextReader myRead = new StreamReader(filename);
MyRootClass obj = s.Deserialize(myRead) as MyRootClass;
return obj;
}
public void SerializeDocument(string filename)
{ // Creates a new XmlSerializer.
XmlSerializer s = new XmlSerializer(typeof(MyRootClass));
// Writing the file requires a StreamWriter.
TextWriter myWriter = new StreamWriter(filename);
// Creates an instance of the class to serialize.
MyRootClass myRootClass = new MyRootClass();
//create items
Item item1 = new Item();
// Sets the objects' properties.
item1.ItemName = "Widget1";
item1.ItemCode = "w1";
item1.ItemPrice = 231;
item1.ItemQuantity = 3;
Item item2 = new Item();
item2.ItemName = "Widget2";
item2.ItemCode = "w2";
item2.ItemPrice = 800;
item2.ItemQuantity = 2; // Sets the class's Items property to the list.
myRootClass.Items.Add(item1);
myRootClass.Items.Add(item2); /* Serializes the class, writes it to
disk, and closes the TextWriter. */
s.Serialize(myWriter, myRootClass);
myWriter.Close();
}
}
[Serializable]
public class MyRootClass
{
public MyRootClass()
{
items =new List<Item>();
}
private List<Item> items;
public List<Item> Items
{
get { return items; }
set { items = value; }
}
}
public class Item
{
public string ItemName;
public string ItemCode;
public decimal ItemPrice;
public int ItemQuantity;
}