Справочная информация: сайт Asp.Net ядра с помощью Dependency Injection для передачи необходимых услуг к различным частям сайтаДинамически Обновление Dependency Injection Service
У меня есть сервис, который добавляется к IServiceCollection в методе ConfigureServices в моем запуске класс как одноточечного следующим образом:
//Settings
services.AddSingleton<ISettingsService, SettingsService>();
services.AddSingleton<ISettingsIO, SettingsIO>();
services.AddSingleton<ISettings>(f =>
{
return f.GetService<ISettingsService>().GetSettings();
});
Это прекрасно работает и все страницы/контроллеры мне нужно иметь доступ к примеру, может сделать это без проблем.
Однако теперь у меня есть возможность изменить данные, которые вытягивают в методе GetSettings(). Это означает, что мне нужно обновить службу, которая будет добавлена в ServiceCollection.
Как это сделать без смена службы от однотонального к переходному?
Благодарим за предоставленную помощь!
Как реализуется «GetSettings»? –
Я не понимаю, почему 'ISetting' также является singleton, поскольку' ISettingsService' уже установлен. Почему бы не использовать его как переходный или ограниченный, и разрешить ли это настройке «SettingsService»? –
@YacoubMassad - GetSiteSettings возвращает объект ISiteSettings, который он создает из запроса в БД. – khrave