2016-05-31 27 views
0

xmlDoc中指出:HandlerExtensions.ConnectHandle ConnectHandler <T>()方法的用途是什么?

添加一个消息处理程序服务总线处理消息

的特定类型 但它并不需要端点名称。它如何工作?我尝试了这种方法,但没有发生任何事。

在总线运行时动态添加处理程序有没有可能?

+0

在巴士启动时分析全面的处理程序,MT创建必要的基础设施元素,如主题和交换以支持订阅。这只发生在公交车启动时。 –

回答

1

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

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

当从总线发送消息(例如请求)时,将SourceAddress添加到消息标题中。如果发送请求,则也会设置ResponseAddress。如果要使用非动态端点来捕获故障(例如未等待的失败命令,IE,火警和遗忘),则可以指定故障地址,以便故障可以被其他持久端点适当分流和处理。