Asp.net mvc 4 在使用NuGet进行大规模更新后,Ninject没有向我的控制器证明参数
我有一个使用Ninject的MVC4项目。我只使用Asp.net mvc 4 在使用NuGet进行大规模更新后,Ninject没有向我的控制器证明参数,asp.net-mvc-4,ninject,nuget,Asp.net Mvc 4,Ninject,Nuget,我有一个使用Ninject的MVC4项目。我只使用App_Start文件夹中提供的Ninject MVC3NinjectWebCommon.cs文件。我刚刚用NuGet执行了一次大规模依赖项更新,但没有意识到它可能会造成多大的麻烦。不知怎么的,它打破了我的九件套。在运行NuGet更新之前,Ninject将正确地创建我的控制器,并为它们提供所需的构造函数参数。现在,在更新之后,我得到以下错误: [MissingMethodException: No parameterless constructo
App_Start
文件夹中提供的Ninject MVC3NinjectWebCommon.cs
文件。我刚刚用NuGet执行了一次大规模依赖项更新,但没有意识到它可能会造成多大的麻烦。不知怎么的,它打破了我的九件套。在运行NuGet更新之前,Ninject将正确地创建我的控制器,并为它们提供所需的构造函数参数。现在,在更新之后,我得到以下错误:
[MissingMethodException: No parameterless constructor defined for this object.]
System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0
System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +113
System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +232
System.Activator.CreateInstance(Type type, Boolean nonPublic) +83
System.Activator.CreateInstance(Type type) +6
System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +110
[InvalidOperationException: An error occurred when trying to create a controller of type 'Portal.Web.Controllers.MatterController'. Make sure that the controller has a parameterless public constructor.]
System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +247
System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) +438
System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) +226
System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) +326
System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +157
System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) +88
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +50
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +301
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155
不过,NinjectWebCommon.cs
文件中的代码仍在执行。我可以在它上面放置断点,并观察它应用我的绑定。不过,我认为MVC在创建控制器时不再使用它
有人知道这次NuGet更新可能会破坏什么吗?您是否在不知情的情况下更新到MVC5?我也意外地执行了那个更新,它破坏了SimpleInjector。哦,糟了,就是这样。谢谢我也没有考虑过NuGet管理MVC版本。我还没有投入任何精力来修复它,因为我回滚到了MVC4,所以我无法进一步帮助您。我也在尝试以某种方式回滚到MVC4。长寿命源代码管理。。