-1

我正在使用来自 Codeplex 的简单服务总线,并有一个处理程序为我提供消息和 IMessageContext。

public void Handle(MyEnquiryMessage message, IMessageContext context)

我将这两个都存储在一个列表中并让处理程序完成。在将来的某个时候,我会进行一些处理并尝试通过获取我存储的上下文并调用来发送回复:

 context.Endpoint.MessageBus.Reply(myResponse)

不幸的是,这会引发异常“对象引用未设置为对象的实例”。这种异步回复方式是否可行,或者“回复”只能在处理程序中使用?

4

1 回答 1

0

我不知道简单服务总线,但我猜你的上下文只在处理程序中有效。如果您想发回响应,您需要从上下文中收集您需要的所有数据,并在稍后阶段简单地执行“发送”。

即便如此,当它可能在另一个处理相关消息类型的端点中处理时,“稍后”执行过程听起来有点奇怪。如果没有更多信息,很难判断,但您的设计可能不是最佳的。

作为旁注:我认为否决票可能是因为问题不在于“NServiceBus”:) --- 可能带有“esb”标签。

于 2013-04-17T05:06:10.167 回答