我有 .NET Core 3.1 控制台应用程序的解决方案,它使用 Autofac 作为 IoC 容器。在这个解决方案中,大约有 50 个项目作为类库,通过 Autofac 作为模块引用。现在我正在创建新模块,它将启动 .NET Core Web API,它将提供来自数据库和其他正在运行的模块的数据。
新的 Web API 模块声明如下:
public class RESTModule : Autofac.Module
{
protected override void Load(ContainerBuilder builder)
{
builder.Register(c =>
{
return Host.CreateDefaultBuilder(new string[] { })
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseConfiguration(c.Resolve<IConfiguration>());
webBuilder.UseStartup<Startup>();
})
.Build();
}).SingleInstance();
}
}
我的问题是:
是否可以将包含所有模块、配置和数据库的现有 Autofac 实例添加到此创建的 WEB API 的实例中,而无需在启动时再次手动添加这些内容?
谢谢
笔记:
- .NET Core 控制台应用程序 -> 从配置中加载模块
- 将模块 1(数据库 1)加载为IDatabase1
- 将模块 2(数据库 2)加载为IDatabase2
- 加载了另外 40 个模块
- 并加载新模块 RESTModule我将在其中使用IDatabase1、IDatabase2和另外 10 个正在运行的模块