Отправка интерфейсов в виде сообщения в NServiceBus с помощью двоичного сериализатора - PullRequest
1 голос
/ 10 августа 2010

Я недавно перешел на использование двоичного сериализатора для отправки сообщений с NServiceBus.Все мои сообщения определены как интерфейсы и создаются с использованием

bus.Send<MessageType>(msg => msg.Property = someValue)

. Это приводит к исключению из NServiceBus, в котором говорится, что

Невозможно создать экземпляр интерфейса

По трассировке стека видно, что используется SimpleMessageMapper, и после просмотра источника видно, что он вызывает Activator.CreateInstance.

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

Спасибо, Мэтт

1 Ответ

0 голосов
/ 10 августа 2010

Я только начал играть с nServiceBus, поэтому все, что я могу вам предложить, это теория :).

Определяете ли вы классы реализации для интерфейсов сообщений или nServiceBus генерирует классы самостоятельно? Если первое, убедитесь, что у вас все еще есть конструктор по умолчанию и что класс и все поля / события помечены как [Serializable] или [NonSerialized]. Если последнее, возможно, что nServiceBus не знает, как генерировать элементы, которые могут понадобиться для (де) сериализации. Возможно, вам придется написать и отобразить класс реализации самостоятельно.

...