問題タブ [membus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Membus と Simple Injector - インターフェイスによるコマンド ハンドラの自動配線
Simple Injector に接続しようとした Membus の IoC 機能を見てきました
アイデアは、すべてのタイプを自動的に に登録するというものですRegisterManyForOpenGeneric(typeof<CommandHandler<>),typeof<CommandHandler<>).Assembly)
。
通常は正当な理由で間違いなく、SimpleInjector は複数の登録を許可しませんが、コマンド処理のさまざまな側面/懸念をさまざまなハンドラーによって実装するためにこれを行いたいと考えています。
確かに、IEnumerable<object> IocAdapter.GetAllInstances(Type desiredType)
membus からのインターフェースはコレクションを想定しているため、複数のハンドラーを呼び出すことができます。
Membus を SimpleInjector IC と組み合わせる最善の方法は何でしょうか?
脚注
私は、慣習によってメンバスを接続する他の方法を見てきました:
しかし、IoC コンテナーを使用してライフタイム スコープを処理し、コマンド ハンドラーをインスタンス化して必要になる前に手動で接続することを避けたいと考えています。
cqrs - membus および ioc コンテナーを使用した SetHandlerInterface() の複数のタイプ
ここでデモ CQRS コードを調べると、コマンドとイベント ハンドラーは以下のように個別に接続されます。
私は membus に接続された IoC コンテナーを使用してIEnumerable<object> GetAllInstances(Type desiredType)
おり、コンテナーにインターフェイスを実装することで夢のように機能しますが、この登録方法を使用したデモとは異なり、個別のコマンドとイベントのインターフェイスを分割することはできません。
任意の数のタイプに登録できるように、これを回避する方法があるかどうか誰かに教えてもらえますか?