7

文件 - > ASP.NET MVC项目的新项目,用于生成具有虚拟操作的控制器。我不确定这是否停止与MVC 2或MVC 3,但这不再是一个最佳做法?我应该让我的ASP.NET MVC控制器操作为虚拟吗?

+0

有趣的问题。我没有注意到这个变化,但现在你提到它了,听起来有点模糊不清。 – Jedidja 2011-06-04 19:24:22

回答

7

T4MVC是否使动作方法变为虚拟。如果你正在使用它,它应该使行动方法虚拟,没有其他方式可以工作

+1

是的,我也意识到了。我一直在想方式。应该深入虚拟的功能 – tugberk 2011-06-04 20:47:47

+0

使动作方法虚拟化大致说不是asp.net mvc的功能。这更多的是T4MVC使用的c#语言功能 – archil 2011-06-04 21:10:01

+0

,这很有帮助。 – tugberk 2011-06-04 21:15:15

2

ASP.NET MVC 3的current documentation不显示虚拟方法。我不确定是什么让他们获得了你,因为我从来没有将控制器分类为覆盖动作。

1

如果你让它们变成虚拟的,那么如果你在测试中使用它们,它会使控制器更容易模拟。

+1

有趣;你派生TestController:RealController并重写操作方法?我很好奇如何嘲笑嘲笑依赖关系的方法。你有没有关于这种方法的博客文章? – Jedidja 2011-06-04 20:18:29

+5

你为什么要继承子类? – 2011-06-04 20:28:10

0

由于各种原因,生成的代码可能是虚拟的。除非某些工具需要,否则不要让自己的代码变为虚拟。参见Liskov替代原则和开放/封闭原则。我认为一些框架可以帮助创建代理,但我无法想象任何理由让您的所有方法变为虚拟。对我来说,它尖叫复制/粘贴或货物邪教程序员。

相关问题