2017-05-31 36 views
0

私はArraylistを新しいArraylistにコピーする必要があります。古いArraylistには、実行時に変更される複数の要素があります。そのうちの1つは、Arraylist内のモジュール設定パラメータです。 arraylistの値を深くコピーして、元に戻す操作に使用できるようにしたいと思います。私はBinaryformaterとDatacontractを使ってみました。両方とも、直列化不可能なオブジェクトに対しては実行できません。誰でも助けることができる、pls?シリアル化可能でないオブジェクトをディープコピーする方法はありますか?

答えて

0

何も間違っているとは言い難いですが、ArrayList自体はシリアル化可能です。ただし、カスタムオブジェクトを使用している場合は、シリアライズ可能にするためにシリアライズ可能としてマークする必要があります。参照:Serialize ArrayList of Objects

+0

は、私は、シリアライズなどのArrayList内の個々のクラスを作成する必要がありますようです役立ちます

'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); } . }’ 

希望のようなメモリストリームおよびバイナリフォーマッタを使用してください。入力ありがとう: – Sanga

0

が 何か

+0

私はすでに上記のコードを試してみました。私はそれを達成するために私のアプリの下のすべてのクラスをシリアライズ可能に変換しなければならなかった。 :) – Sanga

関連する問題