主要方法:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Xml; using System.Xml.Serialization; namespace ConsoleApplication2 { public class SimpleSerializer { /**//// <summary> /// 序列化對象 /// </summary> /// <typeparam name=\"T\">物件類型</typeparam> /// <param name=\"t\">對象</param> /// <returns></returns> public static string Serialize<T>(T t) { using (StringWriter sw = new StringWriter()) { XmlSerializer xz = new XmlSerializer(t.GetType()); xz.Serialize(sw, t); return sw.ToString(); } } /**//// <summary> /// 還原序列化為對象 /// </summary> /// <param name=\"type\">物件類型</param> /// <param name=\"s\">對象序列化後的Xml字串</param> /// <returns></returns> public static object Deserialize(Type type, string s) { using(StringReader sr = new StringReader(s)) { [Page] XmlSerializer xz = new XmlSerializer(type); return xz.Deserialize(sr); } } } }
定義一個用於測試的實體類:
public class TestClass { public string MyFeild { get; set; } }
測試:
static void Main(string[] args) { TestClass x = new TestClass(); x.MyFeild = "測試"; using (StringWriter sw = new StringWriter()) { XmlSerializer xz = new XmlSerializer(x.GetType()); xz.Serialize(sw, x); Console.WriteLine(sw.ToString()); using (StringReader sr = new StringReader(sw.ToString())) { Console.Write(((TestClass)xz.Deserialize(sr)).MyFeild); } Console.Read(); } }
序列化的時候,各個欄位還有下面這類屬性,下次再寫
[XmlElement("MyFeild")]public string MyFeild { get; set; }
參考資料:http://www.zxbc.cn/html/20080126/31552.html