У меня возникает сценарий, когда мое представление является формой Windows, поэтому после вызова его конструктора я хочу создать экземпляр Presenter
класс. Мой ведущий имеет конструктор, который принимает два аргумента, один вид, а второй является хранилищем так:Как настроить структуру карты, если один параметр должен быть передан вручную, а второй должен быть разрешен.
Presenter(IView, IRepository)
Теперь в идеале я хочу, чтобы вид пройти себя в качестве первого параметра, но пусть StructureMap впрыснуть второй параметр. Так что с моей точки зрения я хочу вызвать другой конструктор класса Presenter с одним параметром
Presenter(IView)
и как-то сказать структуру карты, чтобы решить хранилище.
Я не уверен, что это возможно? Кто-нибудь сталкивался с подобным сценарием, и если да, то как мы справляемся с этим, не создавая зависимость от структуры DI?
Благодаря
Спасибо Джо за ваш вклад, да мне это кажется последним вариантом. Если это единственный вариант в этом случае, чем было бы лучше, если бы я отрисовал контейнер DI через свой собственный интерфейс и назову что-то вроде IResolveDependencies.GetInstanceOf()? Таким образом, фактический контейнер DI будет абстрагирован и может быть заменен любым фреймворком. –
Да, это, безусловно, еще одна возможность. Один из вариантов, который я хотел бы упомянуть, - ввести класс строителя. Дополнительную информацию см. В моем обновленном ответе. –
Спасибо, я думаю, это было бы лучшим решением в текущем контексте. –