Следующий код предназначен только для демонстрационных целей.
Допустим, у меня есть 2 компонента (бизнес-служба и служба данных) и класс пользовательского интерфейса.
] Классу UI нужен бизнес-сервис, бизнес-сервису - dataService, а dataService полагается на connectionString.
Сформируйте класс пользовательского интерфейса, который мне нужен для разрешения бизнес-службы, поэтому я пишу следующий код:
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" }) });
Но с точки зрения дизайна, стиля кодирования и многих точек зрения это не лучший способ сделать это.
Так что, пожалуйста, если вы можете посоветовать почему это не работает простым способом или у вас есть лучший способ обхода, поделитесь.