0

我的视图扩展了我制作的基本视图类:

public class BaseView : ViewPage

目前我在这个类的构造函数中调用 ObjectFactory.GetInstance 来获取一些接口实现,但我喜欢使用结构映射将它们作为构造函数参数注入。

我使用结构映射控制器工厂来创建我的控制器,但我怎样才能为视图做同样的事情?

我知道我可以实现自定义 ViewEngine,但是使用反射器查看 mvc 默认视图引擎及其依赖项,它似乎一直在继续,我宁愿不必重新实现已经存在的东西。有没有人有一个狡猾的想法如何解决这个问题?

我知道我可以使用 setter 而不是构造函数注入使事情变得更容易,但如果可能的话,我宁愿避免这种情况。

4

1 回答 1

1

是的,如果您谈论的是 WebForms ViewEngine,那么您的评估是正确的,即它的设计并未考虑到控制反转。您可以游说 Microsoft 更改它,也可以使用 setter 注入。在 FubuMVC 中,我们使用 setter 注入和 StructureMap 的 BuildUp 方法:

于 2010-01-30T14:56:42.477 回答