.Net提的ICloneable接口,其提供的Clone即可以实现浅拷贝也可以实现深拷贝,就浅拷贝而言,应该是比较好实现,深拷贝就没有这么简单了,操作复杂不说,也不一定是真正的深拷贝,那如果我们需要深拷贝该怎么办呢?
我们可以使用序列化机制,这需要注意的地方有:
第一,对象必须支持序列化,即加上Serializable,用以声明改对象支持序列化。
第二,创建内存流MemoryStream,存放对象的容器。
第三, 创建BinaryFormatter对象,将对象序列化至内存中。
有了以上三个对象,我们就可以调用BinaryFormatter对象的Serialize方法,将要序列化的对象放入MemoryStream对象中,然后调用BinaryFormatter对象的Deserialize方法,将内存流中的对象反序列化。
经过以上步骤,对象就实现深拷贝了。