5

Web api 2 のサポートを取得するために、すべての Autofac パッケージを最新のものに更新しました。API コントローラーで、サービス レイヤー クラスのインスタンスを要求するコンストラクターをセットアップしました。これは、すべての mvc で autofac を使用する方法と同じです。コントローラとそれは正常に動作します。

アプリの開始時に実行される ioc 構成で、Web API コントローラーを登録しました。

builder.RegisterType<UsersApiController>().InstancePerApiRequest();

私も試しました

builder.RegisterApiControllers(Assembly.GetExecutingAssembly());

しかし、autofac は私の API コントローラーでは機能しません。サービス クラスの注入を要求するコンストラクターは実行されません。API コントローラーにデフォルトのパラメーターのないコンストラクターを含めないと、エラーが発生します。

Web API 2 と auto fac に関する既知の問題はありますか、それとも何か不足していますか?

4

1 に答える 1

-1

このブログは私のために働いた

http://danielhindrikes.se/cloud/azure/azure-mobile-services-and-autofac/

だから私のコードは今見える

public static void Register(){

            ConfigOptions options = new ConfigOptions();

            //Prepare Dependency Injection Container
            var configBuilder = new ConfigBuilder(options, DependencyInjectionConfig);


            // Use this class to set WebAPI configuration options
            HttpConfiguration config = ServiceConfig.Initialize(configBuilder);
}

private static void DependencyInjectionConfig(ContainerBuilder containerBuilder)
{
            containerBuilder.Register(component => new EFProductRepository()).As<IProductRepository>().SingleInstance();
            containerBuilder.RegisterType<ProductsManager>().As<IProductsManager>();
}
于 2015-07-09T23:38:14.200 に答える