0

我们有两种消息类型UpdateIndividualUpdateIndividualWithDetails. UpdateIndividualWithDetails继承自UpdateIndividual。然后我们为每个处理程序指定了顺序

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

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

4

2 回答 2

0

从您在问题中包含的代码看来,您不小心指定了消息类型而不是处理程序类型。

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

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

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

于 2012-12-05T14:21:14.627 回答
0

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

于 2013-02-05T05:14:04.083 回答