深层复制父项及其子项,Shallow copy child.parent references

时间:2013-07-08 10:47:05

标签: c# serialization

我有一个父母,它有一个孩子的列表。我也有父母的名单,但没有真正的需要进入。

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

我正在使用DataContractSerializer作为我的深层副本。我的问题是这将带走每个孩子的引用父母和深层副本 - 导致重复的父母到处都是;或者至少从测试中我认为这就是发生的事情。

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

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

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

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

结果我毕竟可以使用“IsReference = True”。我担心它会打破列表中的一个孩子的情况,但在这些情况下它仍然会进行深层复制。在任何其他仅作为参考的情况下,它只是复制参考。

完美。