AutofacWebApiDependencyResolver
的用途是什么?
我这样设置:
GlobalConfiguration.Configuration.DependencyResolver =
new AutofacWebApiDependencyResolver(container);
但是如何在我的ApiController
中访问它?
DependencyResolver.Current
不是AutofacWebApiDependencyResolver
,而是MVC版本。
.Current
位于AutofacDependencyResolver
下,但不在AutofacWebApiDependencyResolver
下。如何在web api中访问web api版本?
答案 0 :(得分:1)
正如您展示的那样......使用GlobalConfiguration.Configuration.DependencyResolver
来访问此解析器,方法与最初设置时相同(可以从Web API的任何位置访问静态对象)。
或者,使用请求依赖范围 - 只要您有权访问当前请求(即在MessageHandler
中):
var myservice = request.GetDependencyScope().GetService(typeof(IMyService)) as IMyService
这将使用当前设置的IMyService
AutofacWebApiDependencyResolver
答案 1 :(得分:0)
尝试直截了当的方式:this.Configuration.DependencyResolver
,其中this
是ApiController
个实例。