在對象和 XML 文檔之間進行序列化和反序列化操作。 XmlSerializer 使您能夠控制如何將對象編碼為 XML。
命名空間: System.Xml.Serialization
程序集: System.Xml(位於 System.Xml.dll)
下面舉個例子說明:
// This is the class that will be serialized. public class OrderedItem { public string ItemName; public string Description; public decimal UnitPrice; public int Quantity; public decimal LineTotal; // A custom method used to calculate price per item. public void Calculate() { LineTotal = UnitPrice * Quantity; } }
如何把這個類轉換成一個xml文件呢,這時候就需要 XmlSerializer類來處理了。
它的Serialize(Stream, Object)這個方法,就是用來把一個user類的對象轉換成xml文檔的。
我們來看一個例子:
using System; using System.IO; using System.Xml.Serialization;public class Test{ public static void Main(string[] args) { Test t = new Test(); // Write a purchase order. t.SerializeObject("simple.xml"); } private void SerializeObject(string filename) { Console.WriteLine("Writing With Stream"); XmlSerializer serializer = new XmlSerializer(typeof(OrderedItem)); OrderedItem i = new OrderedItem(); i.ItemName = "Widget"; i.Description = "Regular Widget"; i.Quantity = 10; i.UnitPrice = (decimal) 2.30; i.Calculate(); // Create a FileStream to write with. Stream writer = new FileStream(filename, FileMode.Create); // Serialize the object, and close the TextWriter serializer.Serialize(writer, i); writer.Close(); } }
所生成的xml文件如下格式:
<?xml version="1.0"?> <OrderedItem xmlns:inventory="http://www.cpandl.com" xmlns:money="http://www.cohowinery.com"> <inventory:ItemName>Widget</inventory:ItemName> <inventory:Description>Regular Widget</inventory:Description> <money:UnitPrice>2.3</money:UnitPrice> <inventory:Quantity>10</inventory:Quantity> <money:LineTotal>23</money:LineTotal> </OrderedItem>