десериализация с protobuf.net через сервисы ria - PullRequest
1 голос
/ 11 июля 2011

У меня проблемы с десериализацией коллекции объектов с помощью ProtoBuf.net.Он корректно сериализует его в байтовом массиве, и я передаю этот байтовый массив из службы WCF Ria в Silverlight, который пытается десериализовать результаты.

Я сериализуюсь с использованием Serializer.Serialize<T>(...) / Serializer.Deserialize<T>(...) и отправляю byte[] (через MemoryStream) через WCF RIA.

При попытке десериализации в Silverlight оношибка:

Недопустимая подпись обратного вызова в ComplexObject.OnDeserializing

1 Ответ

0 голосов
/ 12 июля 2011

Это то, что мы технически называем «ошибкой», которая влияет на обратные вызовы сериализации с параметром SerializationContext, но только на определенных платформах. По сути, часть кода была неправильной стороной #if (чтобы вырезать код, связанный с двоичным форматером, из сборок Silverlight и т. Д.).

Тесты для этого были выпрямлены, и это исправлено в r431. Я также улучшил сообщение об ошибке, чтобы дать более полезное сообщение, включая имя метода (код, который уже существовал в другом месте, но странным образом не использовался).

Дайте мне знать, что для этого вам нужен новый zip-архив (против сборки из исходного кода).

Досадно, что действительный код "делаю" был бы в порядке - это была только проверка здравомыслия, которая ... не вменяемая.

...