asp.net-mvc – 自定义控制器工厂,依赖注入/结构图问题与ASP.NET MVC

我最近尝试使用StructureMap实现依赖注入。我设法遵循示例一路,但我遇到一个抛出的异常,每次我尝试运行应用程序。这里是我的控制器工厂的一些代码片段。
public class StructureMapControllerFactory : DefaultControllerFactory
{
    protected override IController GetControllerInstance(Type controllerType)
    {
        if (controllerType == null)
            throw new ArgumentNullException("controllerType");

        return ObjectFactory.GetInstance(controllerType) as Controller;
    }
}

我的Global.asax调用一个静态的BootStrapper类,注册所有我的依赖,但它看起来像StructureMapControllerFactory的GetControllerInstance被调用两次。第一次调用时,传入一个正确的controllerType,但在第二次调用时它总是为null。

第一次调用GetControllerInstance时,类型设置为HomeController,这是正确的。 HomeController中触发的代码将返回View()。在返回View()时,会在aspx文件调用Page_Load事件。步进后,它到达一条线:

httpHandler.ProcessRequest(HttpContext.Current);

这就是第二次调用GetControllerInstance的地方。

这里是我的Global.asax位可能相关:

protected void Application_Start()
    {
        RegisterRoutes(RouteTable.Routes);

        Bootstrapper.ConfigureStructureMap();

        ControllerBuilder.Current.SetControllerFactory(new StructureMapControllerFactory());
    }

我非常渴望获得依赖注入工作,如果任何人可以帮助我,将是最感激。

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....