В Asp.Net Core заинжектить сервис с парметрами, где один из параметров - вложенный сервис, а остальные параметры - обычные переменные

Как пробросить несколько параметров в конструктор, где один из параметров - это вложенный сервис, а второй параметр - обычная переменная. Видел статьи, где объясняется как это сделать с вложенным сервисом. Там рекоммендуют через создание Factory. Но у меня есть еще один параметр. Ниже пример того, как выглядит мой сервис.

class RootService : IRootService
{
   private readonly INestedService<RootService> _nestedService;
   private bool _myParam;

   public RootService(INestedService<RootService> nestedService, bool myParam) =>
      (_nestedService, _myParam) = (nestedService, myParam);
 
}

Ниже пример того, как выглядит регистрация зависимостей.

serviceCollection.AddSingleton(<INestedService, NestedService>());
serviceCollection.AddSingleton(<IRootService, RootService>( _ => new RootService(myParam)));

Ответы (1 шт):

Автор решения: Alexander Petrov

Получаете уже зарегистрированную зависимость из DI-контейнера, а остальные параметры задаёте явно.

serviceCollection.AddSingleton<IRootService, RootService>(x =>
    new RootService(x.GetRequiredService<INestedService<RootService>>(), true)
);
→ Ссылка