这个人的文章很好 http://www.cnblogs.com/daniel206/archive/2008/01/16/1042123.html class Program { static void Main(string[] args) { List<XuXu> list = new List<XuXu>(); list.Add(new XuXu(){ID=1,Name="xuxu"}); list.Add(new XuXu(){ID=2,Name="bubu"}); string result = SimpleSerializer.Serialize<List<XuXu>>(list); List<XuXu> newList = SimpleSerializer.Deserialize(typeof(List<XuXu>), result) as List<XuXu>; //Stream steam = File.Open("c://temp3.dat", FileMode.Create); //BinaryFormatter bf = new BinaryFormatter(); //bf.Serialize(steam, list); //steam.Close(); //Stream steam2 = File.Open("c://temp3.dat", FileMode.Open); //BinaryFormatter bf2 = new BinaryFormatter(); //List<XuXu> list_de = (List<XuXu>)bf2.Deserialize(steam2); //Console.Write(list_de[1].Name); } } [Serializable] public class XuXu { public int ID { get; set; } public string Name { get; set; } } public class SimpleSerializer { 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(); } } public static object Deserialize(Type type, string s) { using (StringReader sr = new StringReader(s)) { XmlSerializer xz = new XmlSerializer(type); return xz.Deserialize(sr); } } }