• 深度复制


    通过序列化来执行深度复制,将对象序列化成二进制流,然后通过二进制反序列化给 某个新对象。这样就达到了深度复制的目的。

    二进制序列化可以让对象保真(只要类加上[Serializable],不管私有成员还是共有成员  全部序列化),而另外普通的XML 序列化 则不能保真(因为不对private序列化)

    另: MSDN 上所述的  类继承Icloneable  实现clone() 方法也可以,如果一个成员是A对象,A对象里又有B对象成员,那么非常繁琐。

    所以尽量使用  序列化来完成。

    [Serializable]
    public  class deepcopy
      {
          public static T DeepClone<T>(T obj)
          {
              using (var ms = new MemoryStream())
              {
                  var formatter = new BinaryFormatter();
                  formatter.Serialize(ms, obj);
                  ms.Position = 0;

                  return (T)formatter.Deserialize(ms);
              }
          }
      }

  • 相关阅读:
    nexus 手动更改 私服包
    maven 构建时 错误: 程序包netscape.javascript不存在
    RocketMQ
    NSQ
    beego 实现API自动化文档
    动态追踪技术漫谈
    go vendor管理Golang项目依赖
    consul介绍
    golang rpc介绍
    golang 使用os/exec配合context实现的超时机制
  • 原文地址:https://www.cnblogs.com/StudyLife/p/2625916.html
Copyright © 2020-2023  润新知