DataContract IsReference работает только в одну сторону? - PullRequest
0 голосов
/ 20 февраля 2011

У меня есть базовый класс, от которого наследуются все мои классы моделей - Entity.Объект украшен

[DataContract(IsReference = true)]

, который работал при переходе от клиента к серверу (операция сохранения).Но сейчас я получаю ту же ошибку, что и до добавления IsReference при переходе с сервера на клиент (операция get).Есть идеи?

Редактировать:

Ошибка:

Произошла ошибка при попытке сериализации параметра http://tempuri.org/:GetResult. Сообщение InnerException было 'Граф объектов для типа 'Current.Entities.LazyList`1 [[Current.Entities.SubPart, Current.Entities, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null]]' содержит циклы и не может быть сериализован, если отслеживание ссылокотключен.'.Пожалуйста, смотрите InnerException для более подробной информации.

Редактировать:

Снимайте, я ответил на это, но с тех пор удалил его.Я думал, что исправил это из-за чего-то еще, что я сделал в проекте.Я был неправ, это все еще вызывает у меня проблему.У меня есть немного больше информации - ошибка сервер-клиент происходит только в том случае, если объект в графе объектов содержит непустой LazyList дочерних элементов.Если список пуст, то проблем нет.

1 Ответ

0 голосов
/ 18 марта 2011

Включение флага http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractserializer.preserveobjectreferences.aspx должно исправить это. (Флаг также существует в DataContractSerializerOperationBehavior - в конфигурации, через атрибут DataContract и через любые пользовательские поведения, которые вы наследуете)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...