如何针对 .Net Framework 和 Autofac 注册服务集合?

How can I register a service collection against .Net Framework and Autofac?

我正在尝试将这个 Microsoft.FeatureManagement 服务包添加到我的 .NET Framework 4.7 网站 API 中。该应用程序配置为使用 OWIN 管道和 Autofac DI。所有服务都针对 Autofac IContainerBuilder 注册。

功能管理服务注册扩展了 IServiceCollection,虽然它是一个 .NET Standard 2.0 库,但看起来它是为用于 .NET Core DI 服务注册而设计的。例如,设置期望注册如下所示:

public void Configuration(IServiceCollection services) {
  services.AddFeatureManagement();
}

有什么方法可以将其注册到我当前的 Autofac + Framework 中吗?

运行 在 .NET Framework 4.7 上使用 Autofac 4.9.2,这是我当前的配置:

CustomModule.cs

public class CustomModule: Module {
  protected override void Load(ContainerBuilder builder) {
    builder.RegisterType<ExampleType>().As<IExampleType>();
  }
}

Startup.cs

public void Configuration(IAppBuilder app) {
  var configuration = new HttpConfiguration();
  var containerBuilder = new ContainerBuilder();
  containerBuilder.RegisterModule(new CustomModule());
  containerBuilder.RegisterWebApiFilterProvider(configuration);
  var container = containerBuilder.Build();
  configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);

  app.UseAutofac(container, configuration);
}

使用Autofac.Extensions.DependencyInjection。有一个 builder.Populate(IServiceCollection) 扩展可以做到这一点。