SerializeによるDeepCopy

Serializeを利用したDeepCopyのソースコードだけです.


  1. using System.IO;
  2. using System.Runtime.Serialization.Formatters.Binary;
  3.  
  4. // オブジェクトのディープコピー
  5. // ※オブジェクトがシリアライズ化可能でなければならない
  6. public static T DeepCopyClone< T >( T source )
  7. {
  8. object target = null;
  9. using( MemoryStream stream = new MemoryStream() )
  10. {
  11. // コピー元をオブジェクトにシリアライズする
  12. BinaryFormatter formatter = new BinaryFormatter();
  13. formatter.Serialize( stream, source );
  14. stream.Position = 0;
  15.  
  16. // シリアライズデータをコピー先オブジェクトにデシリアライズする
  17. target = formatter.Deserialize( stream );
  18. }
  19. return (T)target;
  20. }
  21.  


最終更新:2009年05月31日 15:36
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。