Использовать существующий IContainer в новом экземпляре контейнера Autofa c - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть решение с консольным приложением. NET Core 3.1, которое использует Autofa c в качестве контейнера Io C. В этом решении содержится около 50 проектов в виде библиотек классов, на которые ссылаются в Autofa c в качестве модулей. Сейчас я создаю новый модуль, который запустится. NET Базовый веб-API, который будет предоставлять данные из базы данных и других работающих модулей.

Новый модуль веб-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();
    }
}

И мой вопрос:

Возможно ли добавить существующий экземпляр Autofa c со всеми модулями, конфигурациями и базами данных к экземпляру этого созданного WEB API, не добавляя эти вещи вручную снова при запуске?

Спасибо

Примечание:

  • . NET Приложение основной консоли -> загрузка модулей из конфигурации
    • загружен модуль 1 (база данных 1) как IDatabase1
    • загружен модуль 2 (база данных 2) как IDatabase2
    • загружен еще 40 модулей
    • и загруженный новый модуль RESTModule , где я буду использовать IDatabase1 , IDatabase2 и еще 10 работающих модулей
...