Зарегистрировать службу во время выполнения через 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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