在 NServiceBus 中指定消息处理程序顺序 6.x
Specify Message Handler Ordering in NServiceBus 6.x
ISpecifyMessageHandlerOrdering 接口在 NServiceBus 中已过时 6.x。
文档说明通过调用 endpointConfiguration 上的 ExecuteTheseHandlersFirst 方法来指定顺序。
我正在将 NSB 从 5.x 升级到 6.x。在解决方案中,我在一个核心库中有 endpointConfiguration,在其他库中有许多处理程序。有没有办法在这些其他库中指定处理程序顺序(5.x 方式)?
如果我对你的理解是正确的,你的问题来自这样一个事实,即 ISpecifyMessageHandlerOrdering
实现可以放置在任何地方并通过程序集扫描被拾取,其中 EndpointConfiguration
在一个预定义的spot,not 你的管理员所在的地方。正确吗?
如果是这样的话,我认为 INeedInitialization
接口将是适合您的扩展点。它使您可以访问 EndpointConfiguration
并通过程序集扫描获取。
或者,有一个名为 NServiceBus.HandlerOrdering that allows you to express handler orderings more expressively right on the handler, adding interfaces like IWantToRunAfter<OtherHandler>
. Here's a sample showing how that project works 的社区项目。
ISpecifyMessageHandlerOrdering 接口在 NServiceBus 中已过时 6.x。
文档说明通过调用 endpointConfiguration 上的 ExecuteTheseHandlersFirst 方法来指定顺序。
我正在将 NSB 从 5.x 升级到 6.x。在解决方案中,我在一个核心库中有 endpointConfiguration,在其他库中有许多处理程序。有没有办法在这些其他库中指定处理程序顺序(5.x 方式)?
如果我对你的理解是正确的,你的问题来自这样一个事实,即 ISpecifyMessageHandlerOrdering
实现可以放置在任何地方并通过程序集扫描被拾取,其中 EndpointConfiguration
在一个预定义的spot,not 你的管理员所在的地方。正确吗?
如果是这样的话,我认为 INeedInitialization
接口将是适合您的扩展点。它使您可以访问 EndpointConfiguration
并通过程序集扫描获取。
或者,有一个名为 NServiceBus.HandlerOrdering that allows you to express handler orderings more expressively right on the handler, adding interfaces like IWantToRunAfter<OtherHandler>
. Here's a sample showing how that project works 的社区项目。