Asp.net mvc 3 MVC3/结构图2.6.2 DI自定义控制器工厂问题
我在将非无参数类作为模型传递给控制器中的视图时遇到问题 我最近从结构图2.5.3转到了2.6.2。在2.5.3中一切都很好,但在2.6.2中不再有效。这是我的自定义控制器工厂:Asp.net mvc 3 MVC3/结构图2.6.2 DI自定义控制器工厂问题,asp.net-mvc-3,dependency-injection,inversion-of-control,structuremap,controller-factory,Asp.net Mvc 3,Dependency Injection,Inversion Of Control,Structuremap,Controller Factory,我在将非无参数类作为模型传递给控制器中的视图时遇到问题 我最近从结构图2.5.3转到了2.6.2。在2.5.3中一切都很好,但在2.6.2中不再有效。这是我的自定义控制器工厂: public class StructureMapControllerFactory : DefaultControllerFactory { protected override IController GetControllerInstance(RequestContext requestContext, T
public class StructureMapControllerFactory : DefaultControllerFactory
{
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
try
{
return ObjectFactory.GetInstance(controllerType) as Controller;
}
catch (StructureMapException)
{
Debug.WriteLine(ObjectFactory.WhatDoIHave());
throw;
}
}
}
并对其进行布线:
ControllerBuilder.Current.SetControllerFactory(typeof(StructureMapControllerFactory));
我的自定义模型绑定器引发异常:
有什么问题吗?我认为这与您的DI容器无关。当instance为null时,将调用modelbinder,它可能会尝试创建
modelType
的新实例,这是不可能的,因为它没有无参数构造函数
我想您刚刚在
模型类型的构造函数中添加了一个构造函数参数
是的,我已经添加了,这就是我试图解决的问题。我的模型类型没有无参数构造函数,这就是Structure Map自定义控制器工厂应该注意的,因为我在该类的构造函数中使用依赖项注入?但您不是通过structuremap构造模型类型(或者至少不是modelbinder中使用的模型类型)。