有人可以解释为什么NServiceBus
创建上述RabbitMQ
交换以及基于Handler
配置的预期交换?
编辑:没有定义IEvent / IMessage /对象处理程序类。 使用DefiningEventAs不会改变任何内容(创建相同的交换和队列)。
conf.DefiningEventsAs(
t => t.Name.EndsWith("Event") && t.Namespace != null && t.Namespace.EndsWith("Events"))
.DefiningCommandsAs(
t => t.Name.EndsWith("Command") && t.Namespace != null && t.Namespace.EndsWith("Commands"))
.UnicastBus()
.ImpersonateSender(false);
参考装配:
我们从更高版本降级(虽然不是最新版本,我现在不记得是哪一个),但没有任何改变。
答案 0 :(得分:2)
这种行为是设计的,我们设置了包括IEvent和Object在内的所有交换,因为订阅者可以使用IHandleMessages<IEvent|object>
消息处理程序订阅所有事件。我们无法知道是否有订阅者拥有此类处理程序,因此我们默认设置这些交换。
如果不使用它们应该不会造成任何伤害但是如果你想要摆脱它们,你可以通过实现自己的路由拓扑IRoutingTopology
来忽略这些类型。然后,您将使用.UseRoutingTopology<MyRoutingTopology>()