HandlerExtensions.ConnectHandle ConnectHandler <t>()方法的目的是什么?

时间:2016-05-31 13:06:40

标签: masstransit

Xmldoc声明:

  

向服务总线添加消息处理程序以处理特定类型   消息

但它不需要端点名称。它是如何工作的?我试过这种方法,但什么都没发生。

当总线正在运行时,是否有可能动态添加处理程序?

1 个答案:

答案 0 :(得分:1)

通过在处理器启动后将处理程序连接到总线,可以直接将消息发送到总线的地址。这对于对请求的响应等特别有用,这些请求不应发布并立即发送回端点。

使用bus.ConnectHandler(context => {...})动态地向总线添加处理程序时,不会在代理上创建订阅或交换绑定。它只能接收直接发送到端点的消息。

当从总线发送消息(例如请求)时,SourceAddress将添加到消息头中。如果发送了请求,则还会设置ResponseAddress。如果要使用非动态端点捕获故障(例如未等待的失败命令,IE,触发并忘记),也可以指定故障地址,以便可以对故障进行分类并由另一个持久端点进行适当处理