ASP.NET MVC Web アプリで Ninject 2 を使用しています。すべての依存関係は、スタック (コントローラー -> サービス -> リポジトリー) で適切に処理されます。ただし、サービス プロジェクトには、アプリの起動時に挿入したい「チェーン」にないクラスがいくつかあります。Ninject にそれらを認識させるにはどうすればよいですか? 属性を持つパブリック プロパティがあり[Inject]
ますが、アプリを実行すると null になります。私は何が欠けていますか?
ここに私の MvcApplication クラスがあります:
public class MvcApplication : NinjectHttpApplication
{
protected override void OnApplicationStarted() {
RegisterRoutes(RouteTable.Routes);
RegisterAllControllersIn(Assembly.GetExecutingAssembly());
}
protected override IKernel CreateKernel() {
var modules = new INinjectModule[] {
new Services.ServiceModule(),
new Data.DataModule()
};
var kernel = new StandardKernel(modules);
return kernel;
}
// route registration removed
}
正しいバインディングが存在することを確認するために、両方のモジュールを再確認しました。
モジュールからのサンプル:
public class ServiceModule : NinjectModule
{
public override void Load() {
Bind<IAccountService>().To<AccountService>();
....
}
}