asp.net-mvc - 如何配置 autofac 在初始化 Web API Controller 时为接口(interface)注入(inject)类型?

标签 asp.net-mvc asp.net-web-api inversion-of-control autofac

我有一个 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());

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

关于asp.net-mvc - 如何配置 autofac 在初始化 Web API Controller 时为接口(interface)注入(inject)类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15406415/

相关文章:

c# - 从字符串 C# asp.net-MVC 转换日期和/或时间时转换失败

c# - MVC/HTML - 当 HTML 位于文本区域时不会触发输入提交

jquery - 根据所选下拉菜单隐藏和显示 div

c# - ASP Web Api - IoC - 解析 HttpRequestMessage

c# - .Net IoC 如何处理构造函数中的异常?

inversion-of-control - 使用 Spring.Net 属性注入(inject)数组

c# - 从集线器外部广播的 SignalR 不起作用

javascript - 基于 ASP.NET WebAPI Controller 生成 JS 客户端

angularjs - 如何在 Angular View 中使用 ASP.Net MVC View .cshtml 而不是 .html

c# - 关于 IoC/DI VS CBSE 的信息