Невозможно найти сборку - PullRequest
       15

Невозможно найти сборку

4 голосов
/ 14 апреля 2009

Я сериализирую ArrayList в двоичный файл для отправки его по TCP / IP. Сериализованный файл создается сервером, и я надеюсь, что смогу десериализовать его с клиентом, которого я сейчас пишу.

Однако, когда клиент пытается десериализоваться, он генерирует исключение SerializationException, поскольку он не может найти сборку (предположительно), которая сериализует файл для начала.

Как мне обойти это?

Ответы [ 3 ]

6 голосов
/ 14 апреля 2009

Содержит ли ваш массив данных пользовательский тип данных (т. Е. Ваши собственные классы)?

Массив не будет десериализован, если код, выполняющий десериализацию, не имеет доступа ко всем классам, содержащимся в массиве.

1 голос
/ 14 апреля 2009

Если вы используете двоичную сериализацию, клиент должен иметь доступ к DLL, которая содержит тип, который вы сериализуете в ArrayList. Я полагаю, я не знаю, как вы настроили систему, чтобы описать, как это должно быть сделано, но в этом суть.

Если вы используете что-то вроде сериализации xml (используя XmlSerializaer или DataContractSerializer), вы сможете создавать Xml. Вы можете дублировать объектный код как на стороне сервера, так и на стороне клиента, если действительно не можете поделиться сборкой.

0 голосов
/ 14 апреля 2009

Какие данные вы пытаетесь отправить? И как вы это сериализуете? Если вы используете BinaryFormatter, то сборка, объявляющая любые пользовательские типы, должна быть на обоих концах.

Обратите внимание, что BinaryFormatter имеет ряд проблем с сериализацией в разных системах (в том числе между разными версиями одной и той же системы). Возможно, вы захотите взглянуть на другие сериализаторы, такие как DataContractSerializer или protobuf-net (для эффективной межплатформенной двоичной передачи).

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