我正在使用ASP.NET MVC3和Ninject.我在“AppStart_NinjectMVC3.cs”中设置了标准代码实现,它设置了绑定并向DependencyResolver添加了一个内核,如下所示:
public static void RegisterServices(IKernel kernel)
{
kernel.Bind<IUserRepository>().To<UserRepository>();
...
}
public static void Start() {
IKernel kernel = new StandardKernel();
RegisterServices(kernel);
DependencyResolver.SetResolver(new NinjectServiceLocator(kernel));
}
一切都在我的控制器中运行良好 – 依赖性正在得到很好的解决.
我希望能够在控制器之外和MVC堆栈之外使用Ninject和这些绑定.例如,我有一堆常规的aspx页面,其中我想使用我的ninject内核,还有一些代码挂起了global.asax.
我可以在其他地方重用我的Ninject内核,还是需要在Global.asax appstart中注册内核?
最佳答案 在
http://teamcity.codebetter.com上发现的当前开发版本提供了对普通aspx页面,mvc和wcf的侧面使用的支持.你可能想看看这个.
请注意,这是一个开发版本,并没有很好地测试.不过,我认为它应该非常稳定.但由于它正在进行中,因此界面可以改变.在编写关于此更改的Ninject 2.4预览博客之前,我也不会给予很多支持.
你需要
> Ninject
> Ninject.Web.Common
> Ninject.Web
> Ninject.Web.MVC3