Asp.net mvc 初始化Web API控制器时,如何配置autofac为接口注入类型?
我有一个WebAPI控制器,它依赖于另一个类:Asp.net mvc 初始化Web API控制器时,如何配置autofac为接口注入类型?,asp.net-mvc,asp.net-web-api,inversion-of-control,autofac,Asp.net Mvc,Asp.net Web Api,Inversion Of Control,Autofac,我有一个WebAPI控制器,它依赖于另一个类: public class HealthCheckController : System.Web.Http.ApiController { private readonly IHealthCheckReport _healthCheckReport; public HealthCheckController(IHealthCheckReport healthCheckReport) {
public class HealthCheckController : System.Web.Http.ApiController
{
private readonly IHealthCheckReport _healthCheckReport;
public HealthCheckController(IHealthCheckReport healthCheckReport)
{
this._healthCheckReport = healthCheckReport;
}
}
我使用的是Autofac,在WebApiConfig类的Register方法中,我添加了:
var builder = new ContainerBuilder();
builder.RegisterType<HealthCheckReport>().As<IHealthCheckReport>();
var container = builder.Build();
// Set the dependency resolver for Web API.
var webApiResolver = new AutofacWebApiDependencyResolver(container);
GlobalConfiguration.Configuration.DependencyResolver = webApiResolver;
var builder=newcontainerbuilder();
builder.RegisterType().As();
var container=builder.Build();
//设置Web API的依赖项解析程序。
var webApiResolver=新的AutofacWebApiDependencyResolver(容器);
GlobalConfiguration.Configuration.DependencyResolver=webApiResolver;
但是当我调用Index()操作时,它会抱怨我的控制器没有默认构造函数。然而,我希望Autofac只是神奇地注入我在上面注册的类型
该如何配置?您还需要注册api控制器
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
资料来源:不幸的是,尽管MVC和Web API接口之间的一致性导致熟悉,但也造成了混淆。