Как организовать MVP с контейнером IoC?

Я пытаюсь реализовать концепцию IoC с помощью приложения winforms. Скажем, у меня есть презентатор, конструктор которого принимает свое представление, и служба в качестве аргументов конструктора. Итак, в коде формы у меня есть что-то похожее на это:

mnPresenter = new Presenter(this, new AppService());

где, скажем, AppService — это реализация IAppService. Он зарегистрирован в моем контейнере [autofac]IoC. Каков рекомендуемый способ получения «нового» из этой конструкции ведущего? Разве весь смысл использования инфраструктуры IoC не в том, чтобы потерять эти «новые» вызовы, как я делаю выше?

Я мог бы сделать что-то вроде

mPresenter = new Presenter(this, MyContainer.Resolve<IAppService>())

но это, кажется, противоречит цели IoC. Я, вероятно, упускаю здесь что-то фундаментальное.

Заранее извиняюсь, если я упустил что-то очевидное.

6
задан RobC 29 July 2012 в 04:40
поделиться