Castle Windsor IOC: передача параметров конструктора дочерним компонентам

Следующий код предназначен только для демонстрационных целей.

Допустим, у меня есть 2 компонента (businessService и dataService) и класс пользовательского интерфейса.

Для класса пользовательского интерфейса нужна бизнес-служба, для businessService нужен dataService, а dataService использует connectionString.

Сформируйте UI-класс, который мне нужен для разрешения бизнес-службы, поэтому я пишу следующий код:

var service = container.Resolve<BusinessService>(new { dependancy = "con string 123" }));

обратите внимание, что зависимость - это параметр конструктора connectionString.

Но приведенный выше код не работает, говоря, что dataService ожидает зависимости, которая не была удовлетворена.

Не удается создать компонент «dataService», так как он имеет зависимости, которые должны быть удовлетворены. dataService ожидает следующих зависимостей:

Ключи (компоненты с конкретными ключами) - зависимость, которая не была зарегистрирована.

В качестве обходного пути я делаю это:

var service = container.Resolve<BusinessService>(new { dataService = container.Resolve<IDataService>(new { dependancy = "123" }) });

Но с точки зрения дизайна, стиля кодирования и многих других аспектов это не очень хороший способ сделать это.

Поэтому, пожалуйста, если вы можете посоветовать, почему это не работает простым способом или у вас есть лучший обходной путь, пожалуйста, поделитесь.

Ответы на вопрос(3)

Ваш ответ на вопрос