我将 Ninject 2 与 ASP.NET MVC Web 应用程序一起使用。所有依赖项都在堆栈中正确处理(Controllers->Services->Repositories)。但是,我在服务项目中有一些不在那个“链”中的类,我也想在应用程序启动时注入这些类。如何让 Ninject 识别它们?我有带有[Inject]
属性的公共属性,但是当应用程序运行时,它们为空。我错过了什么?
这是我的 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>();
....
}
}