首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ASP.NET MVC4中使用Ninject时控制器工厂是必需的吗

问在ASP.NET MVC4中使用Ninject时控制器工厂是必需的吗
EN

Stack Overflow用户
提问于 2013-03-11 16:19:17
回答 2查看 14.5K关注 0票数 7

关于在asp.net MVC4中使用.net,我不知道如何处理谷歌提供的大量文档

首先,我想知道控制器工厂是否在asp.net中是必需的。

另外,构造函数注入真的是我们使用MVC4进行依赖注入的唯一方法吗?因为当我在控制器中使用属性注入和方法注入时,它们似乎不起作用

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-11 17:51:08

我不是Ninject方面的专家,但据我所知,我只是用它将我的DataSource Interface和EfDb Class链接到应用程序的其余部分。

如果您需要一本围绕Ninject构建真正应用程序的好书,请尝试:Pro ASP.NET MVC 3 Framework, Third Edition

或

Pro Asp.Net Mvc 4

我通常只关心很少的几行代码

代码语言:javascript
复制
public class NinjectControllerFactory : DefaultControllerFactory
{
    private IKernel ninjectKernel;

    public NinjectControllerFactory()
    {
        ninjectKernel = new StandardKernel();
        AddBindings();
    }

    protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
    {
        return controllerType == null
                   ? null
                   : (IController) ninjectKernel.Get(controllerType);
    }

    private void AddBindings()
    {
        ninjectKernel.Bind<IDataSource>().To<EfDb>();
    }
}

然后使用以下命令在Global.asax.cs中注册您的NinjectControllerFactory:

ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory());

正如您所看到的,这个类使用了使用private void AddBindings()的Method Injection。如果您使用的是Test Driven Development (TDD),这将非常容易实现

票数 9
EN

Stack Overflow用户

发布于 2013-05-07 16:52:31

请参阅这里的文档:https://github.com/ninject/ninject.web.mvc/wiki/Dependency-injection-for-controllers,“唯一需要做的就是为它的依赖项配置Ninject绑定。即使没有添加绑定,控制器本身也会被Ninject找到。”

NInject将自动设置您的控制器依赖项(前提是它具有这些类型的绑定)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15333923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档