MVC contribのポータブル領域を使用する外部アセンブリにMVC3コントローラーがありますが、Ninjectにコンストラクターの依存関係を挿入させるのに問題があります。
コントローラは見つかりましたが、「このオブジェクトにパラメータなしのコンストラクタが定義されていません」という例外が発生します。ninjectのコントローラーファクトリが呼び出しスタックで呼び出されていることがわかりますが、外部アセンブリの場合は、データベースセッションを通過しません。
なぜこれができるのでしょうか?
MVC contribのポータブル領域を使用する外部アセンブリにMVC3コントローラーがありますが、Ninjectにコンストラクターの依存関係を挿入させるのに問題があります。
コントローラは見つかりましたが、「このオブジェクトにパラメータなしのコンストラクタが定義されていません」という例外が発生します。ninjectのコントローラーファクトリが呼び出しスタックで呼び出されていることがわかりますが、外部アセンブリの場合は、データベースセッションを通過しません。
なぜこれができるのでしょうか?
おそらく、Ninjectを更新する必要があります。RegisterAllControllersIn
古くから時代遅れのバージョンのものです。
NinjectのRegisterAllControllersInメソッドを使用して、他のアセンブリにコントローラーを登録する必要があります。
これは、global.asaxのapplicationstartedメソッドでの私の実装です。
foreach (var ass in BuildManager.GetReferencedAssemblies().Cast<Assembly>())
{
RegisterAllControllersIn(ass);
}