我应该将我的ASP.NET MVC控制器操作虚拟化吗?

时间:2011-06-04 16:52:09

标签: asp.net-mvc asp.net-mvc-3 virtual actionresult controller-actions

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

4 个答案:

答案 0 :(得分:7)

T4MVC是否将动作方法设为虚拟。如果您正在使用它,它应该使动作方法成为虚拟,没有其他方式可以使用

答案 1 :(得分:2)

ASP.NET MVC 3的current documentation不显示虚拟方法。我不确定是什么让他们virtual能够获得你,因为我从未将控制器子类化以覆盖行动。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

生成的代码可能因各种原因而变为虚拟。除非某些工具需要,否则将自己的代码设置为虚拟是不好的做法。见Liskov替代原则和开放/封闭原则。我认为有些框架可以帮助创建代理,但我无法想象有什么理由让你的所有方法都是虚拟的。对我来说,它尖叫复制/粘贴或货物崇拜程序员。