Циркулярные ссылки WCF в контракте на данные - PullRequest
0 голосов
/ 20 мая 2010

У меня есть контракт WCF с циркулярными ссылками. Для простых отношений родитель-потомок решение довольно простое с .NET 3.5SP1 или выше - свойство IsReference объекта DataContract ( эта страница имеет хорошее объяснение).

Однако мои отношения имеют три уровня: дедушка <-> родитель <-> ребенок. У «прародителя» много «родителей», а у «родителя» много «детей». Чтобы заставить отношения прародителя <-> родителя работать, я установил IsReference для прародителя - нет проблем. Но для того чтобы родительские отношения <-> работали, «parent» также должен быть IsReference. Как только я установил это, моя служба перестала работать - я предполагаю, что проблема заключается в том, что сериализатор не знает, что делать, когда оба «дедушка» и «родитель» - это IsReference.

Есть ли способ исправить это с помощью IsReference или мне нужно другое решение?

1 Ответ

0 голосов
/ 21 мая 2010

глупая ошибка с моей стороны. «Родитель» - это абстрактный класс, и я пытался пометить один из его подклассов IsReference, когда мне нужно было пометить абстрактный класс.

...