繁体   English   中英

如何使用StructureMap将不同的依赖项注入到WebApi Controller中

[英]How to inject different dependencies into WebApi Controller using StructureMap

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

我已经设置了StructureMap来初始化使用默认约定来处理MVC和WebApi的服务依赖性。 一切都很完美。

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

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

例如

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM