8

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

4

4 回答 4

8

T4MVC 确实使动作方法虚拟化。如果您正在使用它,它应该使动作方法虚拟化,没有其他方式可以工作

于 2011-06-04T20:30:07.903 回答
3

ASP.NET MVC 3的当前文档不显示虚拟方法。我不确定是什么让它们virtual会让你受益,因为我从来没有将控制器子类化来覆盖操作。

于 2011-06-04T19:22:47.380 回答
1

如果您将它们设为虚拟,那么如果您在测试中使用它们,它将使控制器更容易模拟。

于 2011-06-04T19:54:44.070 回答
1

由于各种原因,生成的代码可能会被虚拟化。除非某些工具需要,否则将自己的代码虚拟化并不是一个好习惯。参见 Liskov 替换原则和开/闭原则。我认为一些框架这样做是为了方便创建代理,但我无法想象有什么理由让你的所有方法都虚拟化。对我来说,它尖叫复制/粘贴或货物崇拜程序员。

于 2016-02-19T15:40:59.630 回答