1

我在共享程序集中有我的消息类型,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并处理那里的路由?

4

1 回答 1

2

目前无法按命名空间进行映射 - 当前选项是 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>

然后再也不用担心(那些特定的)端点映射......

于 2015-06-17T07:03:10.000 回答