在NServiceBus 6.x中,ISpecifyMessageHandlerOrdering接口已过时。在NServiceBus 6.x中指定消息处理程序排序
文档通过调用endpointConfiguration上的ExecuteTheseHandlersFirst方法来指定顺序。
我将NSB从5.x升级到6.x.在解决方案中,我在一个核心库中有endpointConfiguration,而在其他库中有许多处理程序。有没有一种方法来指定这些其他库中的处理程序顺序(5.x方式)?
在NServiceBus 6.x中,ISpecifyMessageHandlerOrdering接口已过时。在NServiceBus 6.x中指定消息处理程序排序
文档通过调用endpointConfiguration上的ExecuteTheseHandlersFirst方法来指定顺序。
我将NSB从5.x升级到6.x.在解决方案中,我在一个核心库中有endpointConfiguration,而在其他库中有许多处理程序。有没有一种方法来指定这些其他库中的处理程序顺序(5.x方式)?
如果我正确认识你,你的问题来自于一个事实,一个ISpecifyMessageHandlerOrdering
实现可以放置在任何地方和装配扫描,其中EndpointConfiguration
在预定点被拾起,并不您的处理程序是。正确?
如果是这种情况,我认为INeedInitialization
接口将是您的正确扩展点。它使您可以访问EndpointConfiguration
,并通过程序集扫描进行拾取。
另外,还有一个名为NServiceBus.HandlerOrdering的社区项目,它允许您在处理程序上更直观地表达处理程序的顺序,添加如IWantToRunAfter<OtherHandler>
这样的接口。这是一个sample showing how that project works。
这是我一直在寻找的东西。谢谢! – pmarek
那么你只是在做部分升级? –
没有。整个解决方案 - 包括核心项目和处理器项目。 – pmarek
那么你是否会问,如果以过时的方式指定它是否仍然有效? –