Инъекция зависимостей - это все или ничего. Если вы собираетесь использовать DI, то вы всегда используете DI и практически никогда ничего не обновляете вручную (кроме базовых классов, таких как сущности без зависимостей). Другими словами, если ваш контроллер создает объекты, которые принимают зависимости, эти вещи должны быть зарегистрированы в коллекции сервисов и вместо этого внедрены в контроллер. Например, если вы делаете что-то вроде:
public HomeController(IOptions<AppSettings> appSettings)
{
_appSettings = appSettings.Value;
}
public IActionResult Foo()
{
var service = new FooService(_appSettings);
// do something
}
Затем вы должны добавить в ConfigureServices
:
services.AddScoped<FooService>();
А в вашем контроллере вы должны вместо этого делать:
public HomeController(FooService fooService)
{
_fooService = fooService
}
Служба сбора данных позаботится о внедрении ваших параметров в службу, поскольку сама служба зависит от этого.