我们有两种消息类型UpdateIndividual
和UpdateIndividualWithDetails
。 UpdateIndividualWithDetails
继承自UpdateIndividual
。然后我们为每个处理程序设置处理程序,我们用
public void SpecifyOrder(Order order)
{
order.Specify(new First<UpdateIndividual>());
}
这不起作用,因为UpdateIndividualWithDetails
总是首先被调用。我们正在使用NServiceBus 2.6,现在无法升级。有办法解决这个问题吗?
答案 0 :(得分:0)
从您在问题中包含的代码中,您似乎意外地指定了消息类型而不是处理程序类型。
如果您有单独的处理程序类型,例如UpdateIndividualHandler
和UpdateIndividualWithDetailsHandler
,对于每种形式的消息,如果不起作用,我会感到惊讶:
public void SpecifyOrder(Order order)
{
order.Specify(new First<UpdateIndividualHandler>());
}
虽然我看了NServiceBus已经有一段时间了,所以我可能不对。
答案 1 :(得分:0)
使用组合而不是继承解决了我们的问题。