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