【发布时间】:2018-11-14 16:20:32
【问题描述】:
在 ASP.NET MVC 中(无论版本如何,如果它很重要,假设我使用的是最新的 Core 2.1)我们通过使用属性注释控制器来控制应用程序的行为和参数绑定,例如 [HttpPost] 用于对于应该来自查询字符串的方法参数,应该被称为 POST 和 [FromQuery] 的方法。
现在我在过去几个月中发现了艰难的方法,有无数种方法来混合它。例如,如果您有两个参数声明为[FromBody],则一个将始终为null,因为只有一个可以代表主体。或者,如果您的方法被标记为[HttpGet],那么您的[FromBody] 将返回null,因为标准表明它不是这样做的。相信我,还有很多方法可以弄错。
我承认这些都是我的错误。如果我做得正确,它将起作用。然而,让我感到困惑的是,这是可以在编译时找到的东西。运行时依赖项为零。而且我只有在调试它时才发现它不起作用。我知道在我的程序中查找逻辑缺陷不是编译器的工作,但是控制器工厂在构造它时肯定可以找到它们吗?我将所有控制器类型放入测试方法的单元测试?还是静态代码分析或 stylecop 之类的工具?
我搜索了一下,结果为零。所以我的假设是我的谷歌技能达不到它。
.NET 框架中是否真的没有方法来检查我的所有控制器属性是否加起来可以正确提供?有没有办法告诉我我搞砸了?
如果真的没有,在我自己写之前,这是有原因的吗?如果我自己写了这篇文章,有什么已知的理由不应该这样做吗?
【问题讨论】:
标签: c# asp.net-mvc custom-attributes