using System; using System.IO; using System.Xml.Serialization; [Serializable] public class Model { public string Name{get;set;} public string Possword{get;set;} public override string ToString() { return "Name:"+ Name+"possword:"+Possword; } } class App { static void Main() { Model model=new Model(); model.Name="old Man"; model.Possword="123456"; Console.WriteLine("序列化:"); string str=Serialize(model); System.Console.WriteLine(str); Console.WriteLine("反序列化:"); Model newModel=(Model)Deserialize((typeof(Model)),str); Console.WriteLine(newModel.ToString()); } #region 对象序列化 /// <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)) { XmlSerializer xz = new XmlSerializer(type); return xz.Deserialize(sr); } } #endregion }