.net - 如何针对 .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);
}
解决方案
使用Autofac.Extensions.DependencyInjection。有一个builder.Populate(IServiceCollection)
扩展可以做到这一点。
推荐阅读
- drone - 如何在区域设置无人机实例上登录
- python - Python,站点包部分位于网络文件系统上?
- c# - 使用 RegionInfo 将国家名称转换为自己的 ThreeLetterISORegionName (c# 2013 Winforms)
- wordpress - 如何修复“Woocommerce Cart PDF”功能文件以将 pdf 链接移动到结帐页面而不是购物车页面
- php - PHP - PHPMailer 使用多个 SMTP 主机发送电子邮件
- django - 未找到“about_me”的反向。“about_me”不是有效的视图函数或模式名称
- ios - 使用苹果配置器 2 安装应用程序 - 无法安装错误
- php - 找不到类 'Illuminate\Support\Facades\Finder'
- javascript - JavaScript 函数:这是做什么的?
- mysql - 查询以获取按字段值分组的所有行以及另一个字段的条件