Извините, что беспокою сообщество своей маленькой проблемой, но я просто застрял!
Прежде чем мы углубимся в детали, вот моя настройка контейнера для сервисного модуля!
public class ServiceModule : Module
{
protected override void Load(ContainerBuilder builder)
{
base.Load(builder);
builder.Register(c => new ContextService(c.Resolve<IContextDataProvider>(),
c.ResolveNamed<IExceptionShield>("SRV_HOST_SHIELD"),
c.Resolve<IMonitoring>()))
.As<IContextService>();
builder.Register(c => new ExceptionShield(
c.ResolveNamed<IShieldConfiguration>("SRV_SHIELD_CONFIG")))
.Named<IExceptionShield>("SRV_HOST_SHIELD");
builder.Register(c => new ServiceExceptionShieldConfiguration()).Named<IShieldConfiguration>("SRV_SHIELD_CONFIG");
builder.RegisterType<ContextService>().Named<object>("Service.ContextService");
}
}
Проблема, которую я постоянно решаю, заключается в том, что второй параметр конструктора службы не может быть разрешен .
Я перепробовал все известные мне перестановки, включая простую инициализацию параметра без разрешения контейнера. Но все заканчивается одним и тем же исключением:
None of the constructors found with 'Public binding flags' on type 'Service.ContextService' can be invoked with the available services and parameters:
Cannot resolve parameter 'Common.ExceptionShield.IExceptionShield exceptionShield' of constructor 'Void .ctor(IContextDataProvider, Common.ExceptionShield.IExceptionShield, Common.Monitoring.IMonitoring)'.
Я, должно быть, здесь упускаю что-то решающее. Если вы видите мою ошибку, пожалуйста, сообщите мне:)