循環参照のあるWCF契約を結んでいます。単純な親子関係の場合、ソリューションは.NET 3.5SP1以降(DataContractのIsReferenceプロパティ)を使用すると非常に単純です(このページには適切な説明があります)。
しかし、私の関係は3つのレベルの深さです:祖父母<->親<->子。「祖父母」には多くの「親」がいて、「親」には多くの「子供」がいます。祖父母<->の親の関係を機能させるために、祖父母にIsReferenceを設定しています-問題ありません。ただし、親<->子の関係を機能させるには、「親」もIsReferenceである必要があります。これを設定するとすぐに、サービスが失敗します。問題は、「祖父母」と「親」の両方がIsReferenceの場合、シリアライザーが何をすべきかわからないことだと思います。
IsReferenceでこれを修正する方法はありますか、それとも別の解決策を追求する必要がありますか?