asp.net webapi Parameter Binding 实现NotNull 特性标签
2021/11/6 22:09:47
本文主要是介绍asp.net webapi Parameter Binding 实现NotNull 特性标签,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
记录下:
请仔细查阅,微软文档地址 https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api
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)
这篇关于asp.net webapi Parameter Binding 实现NotNull 特性标签的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具