2013-07-08 114 views
0

我有一個家長,它有一個孩子的列表。我也有一份父母的名單,但沒有真正需要進入。深拷貝父母及其子女,淺拷貝child.parent引用

我需要每個孩子都知道它的父母,所以我爲每個孩子設置了父親引用屬性。我需要能夠深度複製父母,這也會深入複製所有的孩子。

我正在使用DataContractSerializer進行深層複製。我的問題是,這會把每個孩子的參考父母和深層複製也帶入 - 導致重複的父母到處都是;或者至少從測試我認爲這是發生了什麼。

我認爲這會是一些簡單的DataMember標籤來強制成員特定的淺拷貝,但找不到任何東西。

只是要補充一點,我不能讓父母IsReference = true,因爲在我的完整對象結構中,他也可以是祖父母的孩子 - 在這種情況下,我需要深入複製他。

我嘗試過其他方法,例如使用索引而不是類引用來回到child.parent,但這引發了其他基本問題,這會打破整體設計。

任何人都可以幫忙嗎?

回答

0

原來我可以使用「IsReference = True」。我擔心這會打破一個列表中的孩子,但在這種情況下,它仍然是一個深層次的副本。任何其他情況下,它只是一個參考,它只是複製參考。

完美。