1

我最近开始使用二进制序列化程序通过 NServiceBus 发送消息。我的消息都定义为接口并使用实例化

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

这会导致 NServiceBus 抛出异常,说明

无法创建接口的实例

我可以从堆栈跟踪中看到正在使用 SimpleMessageMapper,在查看源代码后可以看到它正在调用 Activator.CreateInstance。

我在文档中找不到任何说明无法做我想做的事情的东西,有没有办法解决这个问题?

谢谢,马特

4

1 回答 1

0

我才刚开始玩 nServiceBus,所以我只能为您提供理论 :)。

您是为消息接口定义实现类,还是 nServiceBus 自己生成类?如果是前者,请确保您仍然有一个默认构造函数,并且该类和所有字段/事件都标记为 [Serializable] 或 [NonSerialized]。如果是后者,nServiceBus 可能不知道如何生成(反)序列化可能需要的成员。您可能必须自己编写和映射实现类。

于 2010-08-10T16:29:50.083 回答