加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 19:07:26 所属栏目:asp.Net 来源:网络整理
导读:我最近尝试使用StructureMap实现依赖注入。我设法遵循示例一路,但我遇到一个抛出的异常,每次我尝试运行应用程序。这里是我的控制器工厂的一些代码片段。 public class StructureMapControllerFactory : DefaultControllerFactory{ protected override ICon
我最近尝试使用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());
    }

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读