1

我有 .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我将在其中使用IDatabase1IDatabase2和另外 10 个正在运行的模块
4

0 回答 0