public object DeepCopy(object obj)
{
    MemoryStream ms 
= new MemoryStream();
    BinaryFormatter bf 
= new BinaryFormatter();
    bf.Serialize(ms, obj);     
 
    
object retval;
    ms.Seek(
0, SeekOrigin.Begin);
    retval 
= bf.Deserialize(ms);
    ms.Close();
    
return retval;
}
 

其原理是使用类系列化和反序列化。