我在vs 2012中使用StructureMap作为IoC项目。我使用以下代码创建了一个控制器工厂:
namespace Mvc_Dependency_Test.Controllers
{
public class IoCControllerFactory:DefaultControllerFactory
{
protected override IController GetControllerInstance(Type controllerType)
{
return (Controller)ObjectFactory.GetInstance(controllerType);
}
}
}
但是我得到了
'Mvc_Dependency_Test.Controllers.IoCControllerFactory.GetControllerInstance(System.Type的)': 找不到合适的方法来覆盖
每次我尝试编译。我被卡住了。我做错了什么?
答案 0 :(得分:1)
从MSDN开始,GetControllerInstance
的方法签名为:
protected internal virtual IController GetControllerInstance(
RequestContext requestContext,
Type controllerType)
由于您传递的是不同的签名,因此您实际上是在尝试覆盖DefaultControllerFactory
中不存在的方法,从而导致错误。要解决此问题,您需要将方法签名更改为相应的签名,并相应地修改代码。