Классы, сериализованные как Object, теряют информацию о своих типах? - PullRequest
1 голос
/ 03 апреля 2012

У меня есть сериализуемый класс Message, который имеет свойство Data As Object, которое я использую в качестве универсального держателя для информации, которая должна быть отправлена ​​через систему, которая использует комбинацию технологии push и / или IPC для связи с любымдругие программы, которые заинтересованы в информации.Это позволяет коммуникационному элементу быть независимым от информации, которую он передает.

Я сериализировал этот Data As Object как Byte[], так как меня беспокоило, как Object сериализуется и передается по сети.будет вести себя на другой стороне.Однако при десериализации я получаю ошибки о невозможности найти сборку для типов, хранящихся в моем свойстве Data As Object, потому что я десериализирую в сборке, которая содержит класс Message ... а не сборку, которая содержит типчто Data As Object изначально было.Сборка, которая содержит описание передаваемой информации, существует с обеих сторон (хотя я еще не выяснил, как я собираюсь изящно позаботиться о создании версий).

Будет отправлять Objectбыть лучшим решением?Мне было интересно, потеряю ли я информацию о типе и не смогу привести ее обратно к типу, который я хочу, на другом конце.Возможно, невозможно передать тип как Object через другую сборку, не зная о моем типе?

Есть большая вероятность, что я подхожу к проблеме совершенно неправильно.Альтернативы с удовольствием приняли.Спасибо!

Ответы [ 2 ]

2 голосов
/ 03 апреля 2012

В: Сериализованные объекты теряют свои типы?

A: Нет

В: Если я приведу объект к «объекту» перед сериализацией, потерял ли я тип

A: Да:)

0 голосов
/ 03 апреля 2012

Сериализация включает тип времени выполнения сериализуемого объекта, поэтому информация о типе не теряется (что фактически делает встроенную двоичную сериализацию значительно менее эффективной при сериализации известных данных в известном формате).

Я сериализировал эти данные как объект как байт [] ...

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

Без более подробной информации о вашем сценарии трудно дать вам более конкретный совет.

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