Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在asp.net mvc中制作结构图驱动的viewengine_C#_Model View Controller_Structuremap_Viewengine - Fatal编程技术网

C# 如何在asp.net mvc中制作结构图驱动的viewengine

C# 如何在asp.net mvc中制作结构图驱动的viewengine,c#,model-view-controller,structuremap,viewengine,C#,Model View Controller,Structuremap,Viewengine,我的视图扩展了我创建的基本视图类: public class BaseView : ViewPage 目前,我在这个类的构造函数中调用ObjectFactory.GetInstance来获得一些接口实现,但我想使用structuremap将它们作为构造函数参数注入 我使用structuremapcontrollerfactory来创建控制器,但是如何对视图执行相同的操作 我知道我可以实现一个自定义的ViewEngine,但是使用reflector来查看mvc默认的ViewEngine及其依赖项

我的视图扩展了我创建的基本视图类:

public class BaseView : ViewPage
目前,我在这个类的构造函数中调用ObjectFactory.GetInstance来获得一些接口实现,但我想使用structuremap将它们作为构造函数参数注入

我使用structuremapcontrollerfactory来创建控制器,但是如何对视图执行相同的操作

我知道我可以实现一个自定义的ViewEngine,但是使用reflector来查看mvc默认的ViewEngine及其依赖项,它似乎一直在继续,我不想重新实现已经存在的东西。有人知道如何解决这个问题吗


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

是的,如果您谈论的是WebForms ViewEngine,您的评估是正确的,即它的设计没有考虑到控制反转。您可以游说Microsoft对其进行更改,也可以使用setter注入。在FubuMVC中,我们使用setter注入和StructureMap的构建方法:

  • 创造 视图的实例
  • 派生自WebFormsControlBuilder- 调用基来创建 实例,然后调用 在所有设备上执行setter注入 适用属性

那么,您实际上希望能够控制哪些依赖项?涵盖一切可能是不切实际的。。。