私はこのブログの例を使用しています:
http://blog.longle.net/2012/03/29/building-a-composite-mvc3-application-with-pluggable-areas/
私は自分のソリューションで機能する概念を持っています。ただし、ユーザーがモジュール/領域にアクセスする権限を持っている場合にのみ、バインディングをカーネルに追加する良い方法を見つけようとしています。
ServiceLocator についていくつか読んだことがありますが、それを避けようとしていました。
物事を機能させるために私が試みていることの 1 つは、モジュールの既定のコンストラクターでのユーザー コンストラクターの挿入です。それは機能していますが、ハックです。
私が使用しているパターンでは、AreaRegistion から継承するクラスを作成する各モジュール プロジェクトです。各モジュール プロジェクトがビルドされると、関連ファイルがメイン Web プロジェクトの Areas フォルダーにコピーされます。その後、メイン プロジェクトが読み込まれると、リフレクションを使用してすべてのモジュール アセンブリが読み込まれます。次に、AreaRegistration.RegisterAllAreas() が呼び出されると、AreaRegistration を継承するクラスを持つすべてのモジュールを検出してロードします。
Ninject カーネルにアクセスし、AreaRegistration から継承するモジュール クラスにバインドを追加する良い方法を見つけたいと思います。RegisterArea() オーバーライドからバインディングを追加するコードを開始することを想像します。
ServiceLocator に頼らずにこれを行う方法についての提案を探しています。
どんなアイデアでも大歓迎です。