在NServiceBus中使用多态消息时,有没有办法控制消息处理程序的顺序?

时间:2012-12-05 05:48:57

标签: nservicebus

我们有两种消息类型UpdateIndividualUpdateIndividualWithDetailsUpdateIndividualWithDetails继承自UpdateIndividual。然后我们为每个处理程序设置处理程序,我们用

指定顺序
public void SpecifyOrder(Order order)
{
    order.Specify(new First<UpdateIndividual>());
}

这不起作用,因为UpdateIndividualWithDetails总是首先被调用。我们正在使用NServiceBus 2.6,现在无法升级。有办法解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

从您在问题中包含的代码中,您似乎意外地指定了消息类型而不是处理程序类型。

如果您有单独的处理程序类型,例如UpdateIndividualHandlerUpdateIndividualWithDetailsHandler,对于每种形式的消息,如果不起作用,我会感到惊讶:

public void SpecifyOrder(Order order)
{
    order.Specify(new First<UpdateIndividualHandler>());
}

虽然我看了NServiceBus已经有一段时间了,所以我可能不对。

答案 1 :(得分:0)

使用组合而不是继承解决了我们的问题。