记录下:
asp.net webApi老系统有个需求。在控制器上执行的action的参数不能为空。
需要像 FromBody 这样,可以自由标注的标签
问题点
关于 FromUri与FromBody 参考微软文档
如何在 asp.net 执行 FromBody 或者 FromUri 代码之后再执行我们的 NotNull 判断?
Asp.Net WebApi 如何确定参数使用 FromBody 还是 FromUri ?
如下图:
通过Resharp反编译可以查看到,通过 action 中的参数类型判断,使用FromUri还是FromBody
实现方式
FromUri代码
通过 base.GetValueProviderFactories(configuration) 最终获取到 “QueryStringValueProvider”(从请求地址中取值),“RouteDataValueProvider”(从路由中取值) 如下图
FromBody如下图:
根据请求的ContentType然后得到对应的Fromatting从请求负载中取值
我的实现方式
实现我的 FromBody 与 FromUri 。 当请求进入asp.net Webapi应用后 先走 FromBody 或 FromUri 代码,执行完后,再执行我的 NotNull 判断,如是null则抛出异常。
具体实现代码,请参考我的仓库 Asp.Net/全局异常捕捉/CatchGlobalException/CatchGlobalException/Controllers/NotNull.cs · zheng_qi/我的仓库 - 码云 - 开源中国 (gitee.com)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。