Serializeを利用したDeepCopyのソースコードだけです.
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
// オブジェクトのディープコピー
// ※オブジェクトがシリアライズ化可能でなければならない
public static T DeepCopyClone< T >( T source )
{
object target = null;
using( MemoryStream stream = new MemoryStream() )
{
// コピー元をオブジェクトにシリアライズする
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize( stream, source );
stream.Position = 0;
// シリアライズデータをコピー先オブジェクトにデシリアライズする
target = formatter.Deserialize( stream );
}
return (T)target;
}
最終更新:2009年05月31日 15:36