我试图了解 Html Helpers 是如何在 MVC 3 中构建的。所以我下载了 MVC 3 源代码并将其作为另一个项目添加到同一解决方案中以对其进行调试。
我遵循了这个步骤。
从我的 MVC 应用程序中删除了 System.web.Mvc 引用
添加了用于调试的 System.web.Mvc 源代码项目参考。
在 Web.config System.Web.Mvc 中,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35 到 System.Web.Mvc
但是,我在我的 3 应用程序中添加了其他NInject
( NInject
, NInject.web.common
, WebActivator
, Microsoft.web.infrastructure
) 引用以MVC
进行依赖注入。
现在我在源代码中出现错误,在下面的源代码中System.Web.MVC
说An error occurred when trying to create a controller of type 'MVCApp.Controllers.HomeController'. Make sure that the controller has a parameterless public constructor.
MVC
public IController Create(RequestContext requestContext, Type controllerType)
{
try
{
return (IController)(_resolverThunk().GetService(controllerType)
?? Activator.CreateInstance(controllerType));
}
catch (Exception ex)
{
throw new InvalidOperationException(
String.Format(CultureInfo.CurrentCulture,
MvcResources.DefaultControllerFactory_ErrorCreatingController, controllerType),
ex);
}
}
检查DependencyResolver.Current属性显示 DependencyResolver.Current 类型“System.Web.Mvc.DependencyResolver”存在于“System.Web.Mvc.dll”和“System.Web.Mvc.dll”中
为了使用 MVC3 源代码调试我的 MVC3App,还需要做些什么?我怎样才能避免这个错误?