私が取り組んでいるアプリケーションでは、新しいエンティティがリポジトリに追加されたときにトリガーされるアクションがあります。新しいアクションの 1 つは、サービス (エーテルのどこかにある Web サービスではなく、サービス層など) を使用して、オブジェクトが入ってきたときにいくつかのビジネス ルール操作を実行することになっています。
これはすべてうまくいきますが、使用する必要がある正確なサービスは、操作しているエンティティのプロパティによって異なります (基本的に、エンティティがどの顧客に関連しているかによって異なります)。アクションが呼び出す必要のあるサービスのフレーバーとアクションを疎結合にしたいと考えています。
私が考えているのは、エンティティを受け入れて正しいサービスを返すファクトリを実装することです。ただし、これは少し厄介なようです。これを設定するより良い方法はありますか?
実行時に正しい実装を判断するために IoC コンテナーを使用することを検討しましたが、いくつか (Ninject と Windsor) をざっと調べただけでは、この種の操作に適しているとは思えません。