したがって、私のエンティティクラス(C#で記述)は、すべての子オブジェクトがその親の参照を保持するParentプロパティを持っている必要がある親子モデルに従います。
このParentプロパティは、循環参照が原因でオブジェクトのシリアル化で問題を引き起こします。
親への参照を削除することも、XmlIgnoreとしてマークすることもできません(XMLを逆シリアル化するときに読み戻す必要があるため)
これについて何かアイデアはありますか?
したがって、私のエンティティクラス(C#で記述)は、すべての子オブジェクトがその親の参照を保持するParentプロパティを持っている必要がある親子モデルに従います。
このParentプロパティは、循環参照が原因でオブジェクトのシリアル化で問題を引き起こします。
親への参照を削除することも、XmlIgnoreとしてマークすることもできません(XMLを逆シリアル化するときに読み戻す必要があるため)
これについて何かアイデアはありますか?
XmlIgnoreXMLシリアル化は循環参照をサポートしていません。属性を使用して、シリアル化から親プロパティを除外する必要があります。デシリアライズするときに関係を維持する方法については、このブログ投稿を参照してください。
DataContractSerializerまたは、の代わりにを使用することもできますXmlSerializer。循環参照をサポートしますが、XMLスキーマをあまり制御できません...
独自に作成するか、および属性をXMLSerializer使用して、参照を記憶するようにシリアライザーに指示することができます。DataContractSerializer[DataContract(IsReference= true)]