我想深拷贝引用类型,而不是每个类内都实现MemberwiseClone()
有没有什么比较好的方法,
例如,在Hashtable获取某项后直接深拷贝这个获取的对象,切断与Hashtable引用关系,
而不是整个Hashtable拷贝。

解决方案 »

  1.   

    仅供参考:http://archive.cnblogs.com/a/2227881/
      

  2.   

    楼上正解,给个例子:
    [Serializable]
    public class MyObject {
      public int n1 = 0;
      public int n2 = 0;
      public String str = null;
    }MyObject obj = new MyObject();
    obj.n1 = 1;
    obj.n2 = 24;
    obj.str = "Some String";
    IFormatter formatter = new BinaryFormatter();
    Stream stream = new FileStream("MyFile.bin", FileMode.Create, FileAccess.Write, FileShare.None);
    formatter.Serialize(stream, obj);
    stream.Close();IFormatter formatter = new BinaryFormatter();
    Stream stream = new FileStream("MyFile.bin", FileMode.Open, FileAccess.Read, FileShare.Read);
    MyObject obj = (MyObject) formatter.Deserialize(stream);//实现深拷贝
    stream.Close();