2010-05-20 11 views
0

J'ai un contrat WCF avec des références circulaires. Pour une relation parent-enfant simple, la solution est assez simple avec .NET 3.5SP1 ou supérieur - la propriété IsReference d'un DataContract (this page a une bonne explication).Références circulaires WCF dans le contrat de données

Cependant, mes relations sont profondes de trois niveaux: grandparent < -> parent < -> enfant. Un «grand-parent» a beaucoup de «parents» et un «parent» a beaucoup «d'enfants». Pour obtenir le grand-parent < -> relation parentale de travail, j'ai IsReference définie sur les grands-parents - pas de problème. Mais pour que la relation parent < -> fonctionne, "parent" doit également être IsReference. Dès que je mets cela, mon service échoue - j'imagine que le problème est que le sérialiseur ne sait pas quoi faire quand les deux "grand-parent" et "parent" sont IsReference.

Existe-t-il un moyen de résoudre ce problème avec IsReference ou de rechercher une autre solution?

Répondre

0

Erreur stupide de ma part. Le "parent" est une classe abstraite et j'avais seulement essayé de marquer une de ses sous-classes avec IsReference quand j'avais besoin de marquer la classe abstraite.