我正在读这本书而我无论我尝试什么我都无法使这个例子正常运行,因为它使用了我从未听过的ninject,如果有人能帮助我让它运行我会很感激
本书的作者说我应该添加新文件夹(基础设施)并将新的.cs文件(NinjectControllerFactory)添加到项目中,然后将以下代码添加到其中
private IKernel ninjectKernel;
public NinjectControllerFactory()
{
ninjectKernel = new StandardKernel();
AddBindings();
}
//problem with override
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
return controllerType == null
? null
: (IController) ninjectKernel.Get(controllerType);
}
如果我尝试调试它,我有一个问题,因为VS说我无法覆盖该方法。我只是删除了覆盖并试图再次运行它,但我再次遇到这行代码的问题:
ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory());
我必须添加global.aspx
- > Application_Start()
方法,但我有一个问题,因为VS说我必须将其转换为IControllerFactory
所以我已将其修改为
ControllerBuilder.Current
.SetControllerFactory(new NinjectControllerFactory() as IControllerFactory);
但现在我在那条线上得到ArgumentNullException
。
任何人都知道如何解决这个问题?
答案 0 :(得分:1)
你要么