代码之家  ›  专栏  ›  技术社区  ›  Peter

正在获取控制器实例

  •  0
  • Peter  · 技术社区  · 10 年前

    我在2012年与2012年的IoC项目中使用StructureMap。我创建了一个控制器工厂,代码如下:

      namespace Mvc_Dependency_Test.Controllers
      {
        public class IoCControllerFactory:DefaultControllerFactory
        {
          protected override IController GetControllerInstance(Type controllerType)
           {
            return (Controller)ObjectFactory.GetInstance(controllerType);
           }
    
       }
     }
    

    但我明白

    “Mvc_Dependency_Test.Controller.IoCControllerFactory.GetControllerInstance(System.Type)”: 找不到合适的替代方法

    每次尝试编译时。我卡住了。我做错了什么?

    1 回复  |  直到 10 年前
        1
  •  1
  •   shree.pat18    10 年前

    从…起 MSDN ,的方法签名 GetControllerInstance 是:

    protected internal virtual IController GetControllerInstance(
    RequestContext requestContext,
    Type controllerType)
    

    由于您传递的是不同的签名,因此您实际上正在尝试重写中不存在的方法 DefaultControllerFactory ,从而导致错误。要解决此问题,需要将方法签名更改为适当的签名,并相应地修改代码。