У меня сложная иерархия объектов, с которой я боролся, чтобы полностью передать ее по проводам при использовании Silverlight с WCF.Я испробовал DataContractSerializer до смерти, и главная проблема в том, что я пытаюсь использовать словарь с несколькими циклическими ссылками и просто не могу заставить его работать.
Я переключился на просмотр protobufЧистая мысль, что в любом случае лучше использовать двоичный формат.Я надеялся, что смогу просто найти и заменить, чтобы добавить атрибуты ProtoMember в свойства.Однако многие свойства, которые сериализуются с атрибутами DataMember, объявлены как Friend (vb.net).Я обнаружил, что protobuf-net выдает ошибку при десериализации, говоря:
Attempt by method <blah> to access field <fieldname> failed.
Я обнаружил, что установка поля для защищенного вызывает ту же ошибку, и единственный способ обойти это - установить поледля публики - это то, что я не хочу делать.Возможно ли это сделать с помощью защищенного установщика или аналогичного свойства свойства, которое поддерживает поле?Хотя это будет проблемой (многие поля / свойства и классы), это по крайней мере решит проблему.Сериализация на серверной части работает нормально.
Если это невозможно, кто-нибудь может подсказать, как я могу получить сложную иерархию объектов с циклическими ссылками, которые включают несколько словарей по проводам в их полной форме?Я понимаю, что Silverlight добавляет несколько ограничений к этому процессу, но, надеюсь, кто-то уже преуспел в этом.
Обратите внимание, что это Silverlight 5