在不显眼的 NServiceBus 示例中,它解释了如何将入站消息映射到端点配置中的 ICommand / IEvent / IMessage ,如下所示:
.DefiningCommandsAs(t => t.Namespace != null && t.Namespace.EndsWith("Commands"))
.DefiningEventsAs(t => t.Namespace != null && t.Namespace.EndsWith("Events"))
.DefiningMessagesAs(t => t.Namespace == "Messages")
但是下面的例子呢,我想创建一个标记接口并让我的所有事件都实现它:
public interface IAmSomeEvent
{
}
public class SomethingImportantHappenned : IAmSomeEvent
{
public string blah { get; set; }
}
然后做这样的事情:
.DefiningEventsAs(t => t.GetInterfaces().Contains(typeof(IAmSomeEvent)))
但问题是它不起作用(NSB 不会将它映射到 IEvent)。
我可以理解为什么这不起作用,因为 NSB 只是接收 json(或 XML)流,因此它并不真正关心原始类型碰巧实现了某个接口或其他接口。但这将是一个非常好的功能。
有人对如何实现这一目标有任何建议吗?
非常感谢