Когда Autofa c пытается создать один из моих объектов, это терпит неудачу. Ошибка - это разрешение вложенного объекта в цепочке, в котором отсутствует параметр конструктора. Я предоставил параметр для вызова разрешения, используя NamedParameters:
var messageHandlers = _diScope.Resolve<IEnumerable<IAggMessageHandler>>(
new NamedParameter("publishers", _publishers),
new NamedParameter("stoppingToken", _stoppingToken)
);
Вот возвращаемая ошибка:
An exception occurred, Autofac.Core.DependencyResolutionException: An exception was thrown while activating λ:AggCommon.Interfaces.IAggMessageHandler[] -> RenPostAgg.EanSignalHighPrioMessageHandler -> λ:AggCommon.Interfaces.IAlgorithm[] -> AggAlgoA1.AlgorithmA1. ---> Autofac.Core.DependencyResolutionException: None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'AggAlgoA1.AlgorithmA1' can be invoked with the available services and parameters:
Cannot resolve parameter 'System.Threading.CancellationToken stoppingToken' of constructor 'Void .ctor(Autofac.ILifetimeScope, AggCommon.Interfaces.IAggSettings, Microsoft.Extensions.Logging.ILogger`1[AggAlgoA1.AlgorithmA1], System.Threading.CancellationToken)'.
Конструктор объекта Lasts в цепочке:
public AlgorithmA1(ILifetimeScope container, IAggSettings settings, ILogger<AlgorithmA1> logger, CancellationToken stoppingToken)
Будет ли Autofa c использовать предоставленный параметр для создания вложенного объекта или мне нужно убедиться, что все конструкторы на всех объектах в цепочке, кроме параметра, и передать его вместе?
Спасибо
-мар c