1

的用途是AutofacWebApiDependencyResolver什么?

我这样设置:

GlobalConfiguration.Configuration.DependencyResolver = 
    new AutofacWebApiDependencyResolver(container);

但是如何在我ApiController的 s 中访问它?

DependencyResolver.Current不是AutofacWebApiDependencyResolver,它的 MVC 版本。

.Current在下可用AutofacDependencyResolver但不在 下可用AutofacWebApiDependencyResolver。如何在 web api 中访问 web api 版本?

4

2 回答 2

1

正如您向自己展示的那样...用于GlobalConfiguration.Configuration.DependencyResolver访问此解析器,就像您最初设置它时所做的一样(它是一个静态对象,可以从 Web API 中的任何地方访问)。

或者,使用请求依赖范围 - 无论您有权访问当前请求(即在 中MessageHandler):

var myservice = request.GetDependencyScope().GetService(typeof(IMyService)) as IMyService

这将IMyService使用当前设置解决AutofacWebApiDependencyResolver

于 2013-01-28T15:35:59.437 回答
0

试试直截了当的方法:this.Configuration.DependencyResolver,实例在this哪里。ApiController

于 2013-02-05T18:07:28.067 回答