使用 configsection 将来自同一程序集的消息映射到 Rebus 中的不同端点
Mapping messages from same assembly to different endpoints in Rebus using configsection
我在共享程序集中有我的消息类型,Domain.Messages
,我需要使用 .config
文件中的 RebusConfigurationSection 将消息从该程序集映射到不同的端点。
像这样:
<endpoints>
<add messages="Domain.Messages.SubNamespaceA, Domain.Messages" endpoint="SubsystemA.input" />
<add messages="Domain.Messages.SubNamespaceB, Domain.Messages" endpoint="SubsystemB.input" />
</endpoints>
那是行不通的,但是否有可能以某种方式实现,或者我必须使用 IDetermineMessageOwnership
的实现并在那里处理路由?
目前无法按命名空间进行映射 - 当前选项是 a) 映射整个消息集合,如下所示:
<endpoints>
<add messages="Domain.Messages" endpoint="SubsystemA.input" />
</endpoints>
或 b) 单独显式映射消息类型,如下所示:
<endpoints>
<add messages="Domain.Messages.SubNamespaceA.MyMessage, Domain.Messages" endpoint="SubsystemA.input" />
</endpoints>
您当然可以实现 IDetermineMessageOwnership
并执行您喜欢的任何时髦查找:)
我更喜欢的另一种选择是构建消息集合,以便每个消息集合只属于一个端点。这样你就可以这样做:
<endpoints>
<add messages="Domain.Messages.SubsystemA" endpoint="SubsystemA.input" />
<add messages="Domain.Messages.SubsystemB" endpoint="SubsystemB.input" />
</endpoints>
然后再也不用担心(那些特定的)端点映射...
我在共享程序集中有我的消息类型,Domain.Messages
,我需要使用 .config
文件中的 RebusConfigurationSection 将消息从该程序集映射到不同的端点。
像这样:
<endpoints>
<add messages="Domain.Messages.SubNamespaceA, Domain.Messages" endpoint="SubsystemA.input" />
<add messages="Domain.Messages.SubNamespaceB, Domain.Messages" endpoint="SubsystemB.input" />
</endpoints>
那是行不通的,但是否有可能以某种方式实现,或者我必须使用 IDetermineMessageOwnership
的实现并在那里处理路由?
目前无法按命名空间进行映射 - 当前选项是 a) 映射整个消息集合,如下所示:
<endpoints>
<add messages="Domain.Messages" endpoint="SubsystemA.input" />
</endpoints>
或 b) 单独显式映射消息类型,如下所示:
<endpoints>
<add messages="Domain.Messages.SubNamespaceA.MyMessage, Domain.Messages" endpoint="SubsystemA.input" />
</endpoints>
您当然可以实现 IDetermineMessageOwnership
并执行您喜欢的任何时髦查找:)
我更喜欢的另一种选择是构建消息集合,以便每个消息集合只属于一个端点。这样你就可以这样做:
<endpoints>
<add messages="Domain.Messages.SubsystemA" endpoint="SubsystemA.input" />
<add messages="Domain.Messages.SubsystemB" endpoint="SubsystemB.input" />
</endpoints>
然后再也不用担心(那些特定的)端点映射...