2013-07-08 116 views
0

我有一个家长,它有一个孩子的列表。我也有一份父母的名单,但没有真正需要进入。深拷贝父母及其子女,浅拷贝child.parent引用

我需要每个孩子都知道它的父母,所以我为每个孩子设置了父亲引用属性。我需要能够深度复制父母,这也会深入复制所有的孩子。

我正在使用DataContractSerializer进行深层复制。我的问题是,这会把每个孩子的参考父母和深层复制也带入 - 导致重复的父母到处都是;或者至少从测试我认为这是发生了什么。

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

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

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

任何人都可以帮忙吗?

回答

0

原来我可以使用“IsReference = True”。我担心这会打破一个列表中的孩子,但在这种情况下,它仍然是一个深层次的副本。任何其他情况下,它只是一个参考,它只是复制参考。

完美。