2011-05-25 60 views
-1

我需要深入拷貝一個對象從一個類,我做了從同一類的另一個對象,我不想淺拷貝,我不想使用序列化方法 有沒有其他簡單的方法來使用??C#需要深拷貝一個對象

+1

是的,寫代碼。 – 2011-05-25 23:31:18

+0

感謝所有的答案=) – 2011-05-27 11:50:26

回答

1

一種便宜的方法是序列化,然後使用二進制序列化將其反序列化。

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