我最近尝试使用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()); }
我非常渴望获得依赖注入工作,如果任何人可以帮助我,将是最感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。