我们正在使用我们自己的主机并希望指定一个处理程序首先触发。我们有一个消息验证处理程序,我们希望在 Saga 处理程序之前触发它。我们尝试使用下面的代码设置顺序,但在我们的日志中查看我们的 saga 消息处理程序首先触发,然后验证处理程序触发。被难住了,想知道这个传奇是否与它有关?
如果您有任何想法,请告诉我们。
来自这里的文档:http://docs.particular.net/nservicebus/handlers/handler-ordering
NServiceBus.Configure.With()
...
.UnicastBus()
.LoadMessageHandlers<First<YourHandler>>()
我们的代码如下所示:
var bus = Configure.With()
...
.UnicastBus()
.LoadMessageHandlers(new First<ValidationHandler>())
最佳答案
将您的代码更改为 NServiceBus 常见问题解答中的示例。我有同样的问题,我也在做
.UnicastBus()
.LoadMessageHandlers(new First<ValidationHandler>())
当我切换到
.UnicastBus()
.LoadMessageHandlers<First<YourHandler>>()
它以预期的顺序运行处理程序
关于NServiceBus 消息处理程序未按预期顺序触发 Saga 处理程序提前触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5553219/