首页 > 解决方案 > 如何针对 .Net Framework 和 Autofac 注册服务集合?

问题描述

我正在尝试将此Microsoft.FeatureManagement服务包添加到我的 .NET Framework 4.7 Web 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,这是我当前的配置:

自定义模块.cs

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

启动.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);
}

标签: .netowinautofac

解决方案


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


推荐阅读