关于在asp.net MVC4中使用.net,我不知道如何处理谷歌提供的大量文档
首先,我想知道控制器工厂是否在asp.net中是必需的。
另外,构造函数注入真的是我们使用MVC4进行依赖注入的唯一方法吗?因为当我在控制器中使用属性注入和方法注入时,它们似乎不起作用
发布于 2013-03-11 17:51:08
我不是Ninject方面的专家,但据我所知,我只是用它将我的DataSource Interface和EfDb Class链接到应用程序的其余部分。
如果您需要一本围绕Ninject构建真正应用程序的好书,请尝试:Pro ASP.NET MVC 3 Framework, Third Edition
或
我通常只关心很少的几行代码
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),这将非常容易实现
发布于 2013-05-07 16:52:31
请参阅这里的文档:https://github.com/ninject/ninject.web.mvc/wiki/Dependency-injection-for-controllers,“唯一需要做的就是为它的依赖项配置Ninject绑定。即使没有添加绑定,控制器本身也会被Ninject找到。”
NInject将自动设置您的控制器依赖项(前提是它具有这些类型的绑定)。
https://stackoverflow.com/questions/15333923
复制相似问题