私のアプリケーションは、1つ以上の「プラグイン」アセンブリを動的にロードできるモジュラーアーキテクチャを実装しています。各アセンブリには、インターフェイスを実装するクラスが含まれてIPlugin
おり、ホストアプリがプラグインとの対話に使用するさまざまなメソッドとプロパティを提供します。
このクラスは必然的にプラグイン内の他のクラスに依存し、これらは独自の依存関係を持つ可能性があります。これまで、Castle Windsor(各プラグインにはIWindsorInstaller
依存関係を登録する場所が含まれています)を使用してこれらすべてを管理し、コンストラクターを介してDIを実行してきました。欠点は、public
このアプローチが機能するためにはクラスが必要であるということです。
私は今、これらすべてのクラスを作成してプラグインをロックダウンしたいと思っていますがinternal
、おそらくWindsorを使用できないため、依存関係を処理するための最良の方法がわかりません。クラスが独自の依存関係をインスタンス化することを望まないので(緩く結合されていない、テスト容易性の欠如など)、他にどのようなアプローチがありますか?