1

共有Domain.Messagesアセンブリにメッセージ タイプがあり、ファイル内の RebusConfigurationSection を使用して、そのアセンブリから別のエンドポイントにメッセージをマップする必要があり.configます。

そのようです:

<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もちろん、好きなファンキーなルックアップを実装して実行することもできます:)

私が好むもう 1 つのオプションは、メッセージの各アセンブリが 1 つのエンドポイントのみに属するようにメッセージ アセンブリを構築することです。このようにして、これを行うことができます:

<endpoints>
    <add messages="Domain.Messages.SubsystemA" endpoint="SubsystemA.input" />
    <add messages="Domain.Messages.SubsystemB" endpoint="SubsystemB.input" />
</endpoints>

そして、(それらの特定の) エンドポイント マッピングについて再び心配する必要はありません...

于 2015-06-17T07:03:10.000 に答える