asp.net-mvc - ASP.NET MVC Controller 静态方法

标签 asp.net-mvc controller static

最近工作中出现了关于为什么 ASP.NET MVC 不使用静态方法作为其 Controller 方法的讨论。虽然我反对使用静态方法,但对于非静态操作方法,我认为唯一的两个参数是继承和模拟能力(继承为您提供了这种能力)。 p>

相对于静态,Microsoft 对非静态操作/方法的设计选择是什么?

最佳答案

虽然我不知道那些设计 ASP.NET MVC 框架的人的想法,但这里对我来说是一个大问题:

每个请求都会实例化一次实例 Controller ,多个请求可以同时发生。如果 Controller 是静态的,则 Controller 上的任何状态都会同时在所有请求之间共享。你可能不想要这样。更新共享状态会成为锁定争用的雷区,如果锁定未正确实现,可能会出现死锁,并且很难跟踪错误。

简而言之,使用静态 Controller 将是一场噩梦。

关于asp.net-mvc - ASP.NET MVC Controller 静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6126957/

相关文章:

static - 防止表格单元格中的文本换行——使用空列

java - 避免静态字段的最佳实践

c# - 如何让我的删除方法接受空值?

c# - MVC 自定义多种类型的 ModelBinding

sql-server - 基本登录协议(protocol)

c# - .NET Core 2.0 MVC 文件上传进度

JavaFX 标签未使用 setText() 更新

c# - 在 ASP.NET MVC 5 中,什么方法设置 User 对象?

java - 不可变类的静态与非静态方法

c# - 从下拉列表中选择值时如何回发到 Controller 功能