2

我有一个依赖于另一个类的 WebAPI 控制器:

 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() 操作时,它抱怨我的控制器没有默认构造函数。然而,我预计 Autofac 只是神奇地注入了我在上面注册的类型。

这应该如何配置?

4

1 回答 1

2

您还需要注册 api 控制器。

  builder.RegisterApiControllers(Assembly.GetExecutingAssembly());

来源:http ://code.google.com/p/autofac/wiki/WebApiIntegration

于 2013-03-14T10:19:40.243 回答