ASP.NET MVC – 在控制器之外使用Ninject绑定

我正在使用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

点赞