XmlSerializer是对xml进行序列化操作的对象。写了一个Order的序列化方法供留念。
序列化针对有get,set的属性;属性必须是public方式;对象顺序和序列化的顺序一致。
对象定义
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Artech.XmlSerializerDemos { public class Order { private double _totalPrice; private Guid _id; public Guid ID { get { return _id; } //set; } private DateTime _date; public DateTime Date { //get; set{_date=value;} } public string Customer { get; set; } public string ShipAddress { get; set; } public Order() { } public Order(double totalPrice) { this._totalPrice = totalPrice; } } }
序列化方法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; using System.Xml.Serialization; namespace Artech.XmlSerializerDemos { class Program { static void Main(string[] args) { Order order = new Order() { //ID = Guid.NewGuid(), Date = DateTime.Today, Customer = "Foo", ShipAddress = "airport address" }; Serialize<Order>(order, @"E:\Order.xml"); } static void Serialize<T>(T instance, string fileName) { using (XmlWriter writer = new XmlTextWriter(fileName, Encoding.UTF8)) { XmlSerializer serializer = new XmlSerializer(typeof(T)); serializer.Serialize(writer, instance); } } } }