5

我刚刚将我所有的 Autofac 包更新到最新版本以获得对 web api 2 的支持。在我的 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 回答