C#需要深拷贝一个对象
答
一种便宜的方法是序列化,然后使用二进制序列化将其反序列化。
MyObject myobj = new MyObject();
// ...
MemoryStream ms = new MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(ms, myObj);
MemoryStream ms2 = new MemoryStream(ms.ToArray());
var myobj2 = (MyObject)formatter.Deserialize(ms2);
+0
Eww。那是邪恶的。 – alternative 2011-05-25 23:45:13
+1
我听到你的声音。但是如果你有一个真正复杂的对象图,这可能是最安全的方法。自定义的“深度复制”代码可能会在您添加它们时错过字段。 – 2011-05-26 00:13:31
+0
第二个流的创建是否会复制已写入流的所有数据? – alternative 2011-05-26 00:50:22
是的,写代码。 – 2011-05-25 23:31:18
感谢所有的答案=) – 2011-05-27 11:50:26