2009-02-26 1 views
0

Моих взгляды расширить базовый класс вида IVE сделал:Как сделать viewengine структурной карты приведенного в ASP.NET MVC

public class BaseView : ViewPage 

На данном момент им вызывающих ObjectFactory.GetInstance внутри этого класса конструктор, чтобы получить некоторый интерфейс реализации, но id как использовать структуру структуры, чтобы вставлять их в качестве аргументов конструктора.

Я использую structmapcontrollerfactory для создания своих контроллеров, но как я могу сделать то же самое для представлений?

Я знаю, что могу реализовать пользовательский ViewEngine, но с использованием рефлектора, чтобы посмотреть на mvc defaultviewengine и его зависимости, он, кажется, продолжается, и я бы предпочел не переустанавливать вещи, которые уже есть. Кто-нибудь получил хитрую идею, как это решить?

Я знаю, что я мог бы сделать вещи проще с установщиком вместо инъекции конструктора, но id скорее избегает этого, если это возможно.

+0

Ну, какие зависимости вы действительно хотите контролировать? Возможно, нецелесообразно покрывать все ... –

ответ

1

Да, если вы говорите о WebForms ViewEngine, вы уверены в своей оценке, что он не был разработан с учетом инверсии управления. Вы можете либо лоббировать Microsoft, чтобы изменить ее, либо использовать инжектор setter. В FubuMVC мы используем сеттер инъекцию наряду с методом СКОПИВШЕЙСЯ StructureMap по:

  • WebFormsControlBuilder создает экземпляр представления
  • StructureMapWebFormsControlBuilder происходит от WebFormsControlBuilder - называет базу для создания экземпляра , а затем вызывает СКОПИВШИЙСЯ до Выполнение установки впрыска на всех применимые свойства.
+0

setter injection it –

Смежные вопросы