需要对一个复杂的嵌套类结构进行深度拷贝,找到了一篇文章
https://www.cnblogs.com/zwq194/archive/2012/08/06/2625403.html
原理是通过序列化方式将对象序列化为二进制数据到一块新建内存;然后反序列化该二进制数据获得对象。
性能从理论上讲应该也是可以的。
public object Clone()
{
BinaryFormatter Formatter = new BinaryFormatter(null, new StreamingContext(StreamingContextStates.Clone));
MemoryStream stream = new MemoryStream();
Formatter.Serialize(stream, this);
stream.Position = 0;
object clonedObj = Formatter.Deserialize(stream);
stream.Close();
return clonedObj;
}
网友评论