У меня есть следующий конструктор:объекта Разрешающего со списком различных реализаций в качестве параметра конструктора, используя замок Виндзор
public DataImporterService(IList<IDataValidator> dataValidators, IList<IDataComparer> dataComparers, IList<IDataStorage> dataStorages)
{
_dataValidators = dataValidators;
_dataComparers = dataComparers;
_dataStorages = dataStorages;
}
и это моя регистрация:
Component.For<IDataComparer>().ImplementedBy<PlanOfRecordComparer>().Named("planOfRecordComparer"),
Component.For<IDataComparer>().ImplementedBy<PlanOfExecutionComparer>().Named("planOfExecutionComparer"),
Component.For<IDataComparer>().ImplementedBy<BomComparer>().Named("bomComparer"),
Component.For<IDataStorage>().ImplementedBy<PlanOfRecordStorage>().Named("planOfRecordStorage"),
Component.For<IDataStorage>().ImplementedBy<PlanOfExecutionStorage>().Named("planOfExecutionStorage"),
Component.For<IDataValidator>().ImplementedBy<PlanOfExecutionValidator>().Named("planOfExecutionValidator"),
Component.For<IDataValidator>().ImplementedBy<PlanOfRecordValidator>().Named("planOfRecordValidator"),
Component.For<IDataValidator>().ImplementedBy<BomValidator>().Named("bomValidator")
но можно зарегистрировать компоненты по-другому не нужно указывать каждую реализацию IDataComparer, IDataValidator и IDataStorage? Как в более общем виде?
был просто описываю тот же ответ, но я буду включать [ссылку на документы] (https://github.com/castleproject/Windsor/blob/master /docs/registering-components-by-conventions.md). –
Отлично! Но теперь я получаю проблему разрешающего 'DataImporterService (IList dataValidators, IList dataComparers, IList dataStorages)' Он бросает: 'Компонент Api.Services.DataImporterService имеет зависимость от System.Collections.Generic.IList'1 [Api.Contracts.IDataValidator], который не удалось решить. И я зарегистрировал коллекцию ... –
D3athSpank