Добрый день.
Есть стандартный механизм создания хоста в .NET Core, а так же стандартный механизм конфигурирования сервисов. Выглядит он, примерно так:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((_, services) =>
services.AddTransient<ITransientOperation, DefaultOperation>()
.AddScoped<IScopedOperation, DefaultOperation>()
.AddSingleton<ISingletonOperation, DefaultOperation>()
.AddSingleton<IConfigurator, Configurator>()
.AddTransient<OperationLogger>());
Но, если я хочу сначала создать коллекцию сервисов, скажем вот так:
var serviceCollection = new ServiceCollection();
serviceCollection
.AddSingleton<IConfigurationRoot>(configuration)
.AddTransient<ITransientOperation, DefaultOperation>()
.AddScoped<IScopedOperation, DefaultOperation>()
.AddSingleton<ISingletonOperation, DefaultOperation>()
То как мне ее потом "подсунуть" хосту?
hostBuilder.ConfigureServices((_, services) => services = serviceCollection);
Так не работает.