我有订阅者订阅了多个不同的发布商。所有这些发布者都发布一个消息,其接口派生自基接口。此基本消息包含所有消息所需的一些常用属性,并且是标记。
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>
有没有办法在一个处理程序中处理来自不同发布者的邮件?
答案 0 :(得分:3)
你是否依赖自动订阅这个?
因为我想我可以回忆起类似于你的某些麻烦 - 我记得它,解决方案是手动订阅每条消息。
您仍然可以依赖多态消息调度,这只是多态自动订阅似乎无法正常工作。