Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 深度复制父级及其子级,浅复制子级。父级引用_C#_Serialization - Fatal编程技术网

C# 深度复制父级及其子级,浅复制子级。父级引用

C# 深度复制父级及其子级,浅复制子级。父级引用,c#,serialization,C#,Serialization,我有一个父母,上面有孩子的名单。我也有一份父母的名单,但我真的没有必要去调查 我需要每个子对象都知道其父对象,因此我为每个子对象设置了父对象引用属性。我需要能够深度复制父对象,这也将深度复制其所有子对象 我正在使用DataContractSerializer进行深度复制。我的问题是,这将采取每个孩子的参考父母和深度复制,也造成重复的父母各地;或者至少从测试来看,我认为这就是发生的事情 我想它应该是一些简单的DataMember标记来强制一个特定于成员的浅拷贝,但是找不到任何东西 更重要的是,我不

我有一个父母,上面有孩子的名单。我也有一份父母的名单,但我真的没有必要去调查

我需要每个子对象都知道其父对象,因此我为每个子对象设置了父对象引用属性。我需要能够深度复制父对象,这也将深度复制其所有子对象

我正在使用
DataContractSerializer
进行深度复制。我的问题是,这将采取每个孩子的参考父母和深度复制,也造成重复的父母各地;或者至少从测试来看,我认为这就是发生的事情

我想它应该是一些简单的
DataMember
标记来强制一个特定于成员的浅拷贝,但是找不到任何东西

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

我尝试过其他方法,比如使用索引而不是类引用来返回
子.parent
,但这会引发其他基本问题,这将破坏总体设计

有人能帮忙吗?

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

太好了