我有一个 WebAPI Controller ,它依赖于另一个类:
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;
但是当我调用 Index() 操作时,它提示我的 Controller 没有默认构造函数。然而,我期望 Autofac 会神奇地注入(inject)我在上面注册的类型。
应该如何配置?
最佳答案
您还需要注册 api Controller 。
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
关于asp.net-mvc - 如何配置 autofac 在初始化 Web API Controller 时为接口(interface)注入(inject)类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15406415/