使用IHandleMessages时有些困惑

时间:2011-04-05 16:49:00

标签: nservicebus

我有订阅者订阅了多个不同的发布商。所有这些发布者都发布一个消息,其接口派生自基接口。此基本消息包含所有消息所需的一些常用属性,并且是标记。

public interface IBaseMessage : IMessage
{}

public inteface IPublisher1Message : IBaseMessage
{}

public inteface IPublisher2Message : IBaseMessage
{}

在订阅者中,我创建了一个订阅系统中所有发布者的类。

public BaseMessageHandler : IHandleMessages<IBaseMessage>
{
  public void Handle(IBaseMessage message) {}
}

我希望这可以处理来自所有发布者的消息,但我发现最多只有一个发布者,这取决于我如何进行消息端点映射。

<MessageEndpointMappings>
 <add Messages="Messages.IPublisher1Messages,Messages" Endpoint="Publisher1" />
  <add Messages="Messages.IPublisher2Messages,Messages" Endpoint="Publisher2" />
</MessageEndpointMappings>

有没有办法在一个处理程序中处理来自不同发布者的邮件?

1 个答案:

答案 0 :(得分:3)

你是否依赖自动订阅这个?

因为我想我可以回忆起类似于你的某些麻烦 - 我记得它,解决方案是手动订阅每条消息。

您仍然可以依赖多态消息调度,这只是多态自动订阅似乎无法正常工作。