在.NET中,抽象基类System.IO.Stream代表流,MemoryStream对象的数据来自内存缓冲区,FileStream对象的数据来自文件。
除此以外,序列化-反序列化有两个要点。
1、BinaryFormatter的类定义,即,以二进制形式序列化-反序列化某对象(或与对象相关联的全部内容)。当然,还有个SoapFormatter,意义类似。
2、BinaryFormatter成员Serialize、Deserialize定义,序列化-反序列化到流。
syntax--public void Serialize(Stream serializationStream,Object graph)
public Object Deserialize(Stream serializationStream)
这三点理解,足够了。见下面的图:
注意这里-"marshal-by-value",取得对象副本."marshal-by-reference",访问原对象.
取舍在性能和一致性的权衡。