0

PubSub機能にNServiceBusを内部的に使用するパブリッシュサブスクライブファサードを作成しようとしています。NServiceBusでこれを行う際の問題の1つは、多くの構成がインターフェイスを介して行われることです。たとえば、パブリッシャーはIWantToRunAtStartupを実装します。そのパブリッシャーのエンドポイントは、IConfigureThisEndpointとAsA_Publisherを実装します。

これは非常に優れた機能であり、「流暢」であり、コードを読みやすく、理解しやすくします。

しかし、それはファサードを作成することを困難にします。たとえば、IWantToRunAtStartupを実装する基本クラスでは、すべてのスーパークラスがNServiceBus.Hostを参照する必要があります。

もちろん、NServiceBusを参照する必要があると、ファサードを持つという考えが完全に破られます。その時点でのファサードのポイントは何ですか?

NServiceBusには、インターフェイス技術を使用しないエンドポイント、パブリッシャー、サブスクライバー、およびメッセージとしてタイプを構成する方法がありますか?もしそうなら、誰かが私にそのドキュメント(または、さらに良いことに、サンプル)を教えてもらえますか?

4

1 に答える 1

1

インターフェースIConfigureThisEndpoint、AsA_Publisher、およびIWantToRunAtStartupは、パブリッシュ/サブスクライブのセットアップには必要ありません。

NServiceBus.Host.exeでエンドポイントをホストしていない場合は、サブスクリプションをメモリ、msmq、リレーショナルデータベース、またはRavenDBを使用してどのように保存するかをNServiceBusに指示するだけです。Configure.With()...初期化コードの一部として適切なメソッドを選択するだけです。

バージョン3.0以降、NServiceBusは、NServiceBusに依存しないメッセージタイプの定義をサポートしています。http://docs.particular.net/nservicebus/messaging/unobtrusive-modeを参照してください

いずれの場合も、公開されているイベントを処理するサブスクライバーのコードは、NServiceBusインターフェイスIHandleMessagesを実装する必要があります。

一般的に言って、NServiceBusは他のサービスバスとは哲学が十分に異なっているため、ファサードの有無にかかわらず、一方から他方への移動はそれほど簡単ではありません。

于 2012-05-26T09:49:33.687 に答える