【问题标题】:Deep copy a parent and its children, Shallow copy child.parent references深拷贝父及其子,浅拷贝 child.parent 引用
【发布时间】:2013-07-08 21:35:35
【问题描述】:

我有一个父级,它有一个子级列表。我也有一份父母名单,但没有必要详细说明。

我需要每个孩子都知道它的父母,所以我为每个孩子设置了一个父母参考属性。我需要能够深度复制父级,这也将深度复制它的所有子级。

我正在使用DataContractSerializer 作为我的深层副本。我的问题是,这也会占用每个孩子的引用父母和深拷贝——导致父母重复;或者至少从测试中我认为是这样的。

我认为这将是一些简单的DataMember 标签来强制成员特定的浅拷贝,但找不到任何东西。

补充一点,我不能创建父 IsReference = true,因为在我的完整对象结构中,他也可以是祖父母的孩子——在这种情况下,我需要深度复制他。

我尝试了其他方法,例如使用索引而不是类引用来返回 child.parent,但这会引发其他基本问题,从而破坏整体设计。

谁能帮忙?

【问题讨论】:

    标签: c# serialization


    【解决方案1】:

    事实证明,我毕竟可以使用“IsReference=True”。我担心它会破坏类是列表中的孩子的情况,但在这些情况下,它仍然会进行深层复制。如果它只是一个引用,则它只是复制引用。

    完美。

    【讨论】:

      猜你喜欢
      • 2012-04-12
      • 2015-01-13
      • 2011-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-13
      • 2011-02-09
      • 1970-01-01
      相关资源
      最近更新 更多