AutofacWebApiDependencyResolver用法

时间:2013-01-28 15:27:52

标签: asp.net-web-api autofac

AutofacWebApiDependencyResolver的用途是什么?

我这样设置:

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

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

DependencyResolver.Current不是AutofacWebApiDependencyResolver,而是MVC版本。

.Current位于AutofacDependencyResolver下,但不在AutofacWebApiDependencyResolver下。如何在web api中访问web api版本?

2 个答案:

答案 0 :(得分:1)

正如您展示的那样......使用GlobalConfiguration.Configuration.DependencyResolver来访问此解析器,方法与最初设置时相同(可以从Web API的任何位置访问静态对象)。

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

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

这将使用当前设置的IMyService

解决AutofacWebApiDependencyResolver

答案 1 :(得分:0)

尝试直截了当的方式:this.Configuration.DependencyResolver,其中thisApiController个实例。