Зарегистрировать службу во время выполнения через DI?C#

Место общения программистов C#
Anonymous
Зарегистрировать службу во время выполнения через DI?

Сообщение Anonymous »

Я использую ASP.NET Core и хочу добавить службу в IServiceProvider во время выполнения, чтобы ее можно было использовать во всем приложении через внедрение внедрения.

Например простым примером может быть то, что пользователь обращается к контроллеру настроек и меняет настройку аутентификации с «Вкл.» на «Выкл.». В этом случае я хотел бы заменить службу, зарегистрированную во время выполнения.

Псевдокод в контроллере настроек:

Код: Выделить всё

if(settings.Authentication == false)
{
services.Remove(ServiceDescriptor.Transient());
services.Add(ServiceDescriptor.Transient());
}
else
{
services.Remove(ServiceDescriptor.Transient
services.Add(ServiceDescriptor.Transient());
}
Эта логика работает нормально, когда я делаю это в своем Startup.cs, поскольку IServiceCollection не встроен в IServiceProvider. Однако я хочу иметь возможность сделать это после того, как запуск уже выполнен. Кто-нибудь знает, возможно ли это вообще?

Подробнее здесь: https://stackoverflow.com/questions/406 ... ime-via-di

Вернуться в «C#»