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 に答える