2017-05-31 58 views
0

我必須複製一個Arraylist到一個新的Arraylist。在舊的Arraylist中,有多個元素會在運行時發生變化。其中一個是Arraylist中的模塊設置參數。我想深層複製數組列表的值,以便我可以將其用於撤消操作。我嘗試使用Binaryformater和Datacontract。對於不可序列化的對象,兩者都無法完成。任何人都可以幫忙嗎?有沒有辦法深入複製不可序列化的對象?

回答

0

如果沒有更多的信息,很難確切地說出錯,但ArrayList本身是可序列化的。但是,如果您正在使用自定義對象,則需要將其標記爲可串行化才能正常工作。請參閱:Serialize ArrayList of Objects

+0

看來我得讓ArrayList中爲可序列內個別類。感謝您的輸入:) – Sanga

0

使用內存流和二進制格式 喜歡的東西

`public T Clone<T> (T obj) 
. { 
.  using(var ms = new MemoryStream()) 
.  { 
.   var formatter = new BinaryFormatter(); 
     formatter.Serialize(stream, obj); 
     stream.Position =0; 
     return (T)formatter.Deserialize(stream); 
    } 
. }’ 

希望幫助

+0

我已經嘗試了上面的代碼。我必須將我應用程序下的所有類轉換爲可序列化才能實現。 :) – Sanga

相關問題