c#中将一个内存中的对象Serialize到文件,然后有内存时将对象从文件中读到内存中: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Runtime.Serialization.Formatters.Binary; using System.Runtime.Serialization; namespace objStore { [Serializable] //必须加上Serializable,如何对象包含其他class的对象,每个class上方需要加上Serializable class SampleObj { int a = 10; int b = 20; public SampleObj sibling = null; public SampleObj(int a, int b) { this.a = a; this.b = b; } public override string ToString() { return string.Format("a={0}/tb={1}", a, b); } } class Program { static void Main(string[] args) { SampleObj obj1 = new SampleObj(10, 20); SampleObj obj2 = new SampleObj(20, 40); obj1.sibling = obj2; obj2.sibling = obj1; //Serialize to file BinaryFormatter binaryFormater = new BinaryFormatter(); FileStream fsWriter = new FileStream("data.bin", FileMode.Create); binaryFormater.Serialize(fsWriter, obj1); binaryFormater.Serialize(fsWriter, obj2); fsWriter.Close(); //Deserialize from file FileStream fsReader = new FileStream("data.bin", FileMode.Open); while (fsReader.Position != fsReader.Length) { SampleObj currentObj = binaryFormater.Deserialize(fsReader) as SampleObj; Console.WriteLine("current Obj={0}, sibling = {1}", currentObj.ToString(), currentObj.sibling.ToString()); } Console.ReadKey(); } } }