Feb 28, 2014

いつも忘れるので。

public T DeepCopy(T target)
{
    object result = null;

    // シリアル化した情報を格納する stream
    using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
    {
        // 指定されたオブジェクトをシリアライズ
        System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter = 
            new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
        formatter.Serialize(stream, target);

        // デシリアライズ
        stream.Position = 0;
        result = formatter.Deserialize(stream);
    }

    return (T)result;
}

0 Comments :

Post a Comment