我最近开始使用二进制序列化器通过 NServiceBus 发送消息。我的消息都定义为接口并使用
进行实例化bus.Send<MessageType>(msg => msg.Property = someValue)
这会导致 NServiceBus 抛出异常,指出
无法创建实例 接口
我可以从堆栈跟踪中看到 SimpleMessageMapper 正在被使用,并且在查看源代码后可以看到它正在调用 Activator.CreateInstance。
我在文档中找不到任何内容表明无法执行我想要执行的操作,有办法解决此问题吗?
谢谢, 马特
您是为消息接口定义实现类,还是nServiceBus自己生成类?如果是前者,请确保您仍然有默认构造函数,并且类和所有字段/事件都标记为 [Serialized] 或 [NonSerialized]。如果是后者,nServiceBus 可能不知道如何生成序列化(反)序列化所需的成员。您可能需要自己编写并映射实现类。