В 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)
);