Deep Clone

Have you ever used the Clone() method of DataSet? This method creates an empty class with same structure as original DataSet.
Y
ou can write your own clonable classes. To do so, you must implement IClonable. The following code shows a clonable Test class.

using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
public
Class Test : IClonable

{

    public Test()

    {

    }

    // deep copy in separeate memory space

    public object Clone()

    {

        MemoryStream ms = new MemoryStream();

        BinaryFormatter bf = new BinaryFormatter();

        bf.Serialize(ms, this);

        ms.Position = 0;

        object obj = bf.Deserialize(ms);

        ms.Close();

        return obj;

    }

}

 

posted @ 2009-10-13 20:02  Sailor.lee  阅读(280)  评论(0编辑  收藏  举报