asp.net mvc未使用指定的控制器工厂

时间:2009-12-12 11:22:03

标签: asp.net-mvc

我正在使用与VS2010 Beta 2一起安装的ASP.NET MVC Preview 2.我正在连接WindsorControllerFactory,如下所示:

Container = new WindsorContainer();
Container.RegisterControllers(typeof(HomeController).Assembly);
ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory(Container));

我的HomeController有一个依赖项传递给构造函数,运行时我收到以下错误:

没有为此对象定义无参数构造函数。

[MissingMethodException: No parameterless constructor defined for
     

这个对象。]          System.RuntimeTypeHandle.CreateInstance(RuntimeType   type,Boolean publicOnly,Boolean   noCheck,布尔& canBeCached,   RuntimeMethodHandle&安培; ctor,布尔&   bNeedSecurityCheck)+0          System.RuntimeType.CreateInstanceSlow(布尔   publicOnly,Boolean fillCache)+86          System.RuntimeType.CreateInstanceImpl(布尔   publicOnly,布尔   skipVisibilityChecks,布尔值   fillCache)+230          System.Activator.CreateInstance(类型   type,Boolean nonPublic)+67          System.Activator.CreateInstance(类型   类型)+6          System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(的RequestContext   requestContext,类型controllerType)   522

[InvalidOperationException: An error occurred when trying to create a
     

类型的控制器   'Xenotar.WedPlannerPro.Controllers.HomeController'。   确保控制器有一个   无参数公共构造函数。]          System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(的RequestContext   requestContext,类型controllerType)   659          System.Web.Mvc.DefaultControllerFactory.CreateController(的RequestContext   requestContext,String controllerName)   +198          System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase   httpContext)+225          System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext的   httpContext)+86          System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext的   httpContext)+36          System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()   +181          System.Web.HttpApplication.ExecuteStep(IExecutionStep   步,布尔& completedSynchronously)   75

通过查看此堆栈跟踪,它看起来不像MVC正在使用WindsorControllerFactory,而是仍然使用DefaultControllerFactory?

在MVC 1.0中执行此操作时,它可以正常工作。

MvcContrib与ASP.NET MVC 2不兼容。

1 个答案:

答案 0 :(得分:0)

您应该能够修改MvcContrib以使用ASP.NET MVC 2.控制器注册的代码非常少。