【问题标题】:How to inject different dependencies into WebApi Controller using StructureMap如何使用 StructureMap 将不同的依赖项注入 WebApi Controller
【发布时间】:2012-05-09 08:15:43
【问题描述】:

目前我有一个 MVC 应用程序,它也包含 WebApi 控制器。

我已设置 StructureMap 以使用默认约定进行初始化,该约定处理 MVC 和 WebApi 的服务依赖项。这一切都很完美。

但是,我有一个身份验证服务依赖项,应该为 WebApi 注入,并为 MVC 注入不同的实现。由于 StructureMap 有相同的初始化引导代码,如何根据传入的请求是 WebApi 端点还是 Mvc 控制器端点进行切换?

【问题讨论】:

    标签: c# asp.net-mvc dependency-injection structuremap asp.net-web-api


    【解决方案1】:

    不知道这是否是实现这一目标的最佳方式,但我使用 ObjectFactory.Configure 方法在启动时覆盖初始化注册表,但在 Mvc 的 DependencyResolver.SetResolver 和 WebApi 的 GlobalConfiguration.Configuration 上的每个 SetResolver 中执行此操作.ServiceResolver.SetResolver.

    例如

     ObjectFactory.Configure(x => x.For<IAuthenticationService>() 
                            .Use(s => s.GetInstance<IMvcAuthenticationService>()));
    

     ObjectFactory.Configure(x => x.For<IAuthenticationService>() 
                            .Use(s => s.GetInstance<IWebApiAuthenticationService>()));
    

    【讨论】:

      猜你喜欢
      • 2015-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多