一、开篇

  Fiter在Web API中经常会用到,主要用于记录日志,安全验证,全局错误处理等;Web API提供两种过滤器的基本类型:actionfilterattribute,exceptionfilterattribute;两个类都是抽象类,actionfilter主要实现执行请求方法体之前(覆盖基类方法OnActionExecuting),和之后的事件处理(覆盖基类方法OnActionExecuted);exceptionfilter主要实现触发异常方法(覆盖基类方法OnException)。

  之前在写api的时候用的log4net,需要在每个控制器或者方法中添加写日志的方法,后来了解到有个过滤器这个东东,都写在过滤器中很方便。

二、ExceptionFiter的使用

  2.1、新建一个类实现ExceptionFilter类,重写OnException方法。

  

   2.2、在控制器中使用

  

  2.3、效果

  

三、ExceptionFilterAttribute的使用

  3.1、新建一个类实现ExceptionFilterAttribute

  

   3.2、在需要使用的控制器或者action前面加上特性即可

  

四、 在mvc中和web api添加全局的控制有区别

  在webapi中是在WebApiConfig中添加config.Filters.Add(new xxxxx);

  在mvc项目中是在FilterConfig中添加 filters.Add(new xxxx());

五、在mvc中使用过滤器

  

    

转载于:https://www.cnblogs.com/WJ--NET/p/7878286.html

C# web api 中过滤器的使用相关推荐

  1. Web APi之过滤器执行过程原理解析【二】(十一)

    前言 上一节我们详细讲解了过滤器的创建过程以及粗略的介绍了五种过滤器,用此五种过滤器对实现对执行Action方法各个时期的拦截非常重要.这一节我们简单将讲述在Action方法上.控制器上.全局上以及授 ...

  2. ASP.NET Web API中的Controller

    虽然通过Visual Studio向导在ASP.NET Web API项目中创建的 Controller类型默认派生与抽象类型ApiController,但是ASP.NET Web API框架本身只要 ...

  3. 利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理

    在Asp.net Web API中,对业务数据的分页查询处理是一个非常常见的接口,我们需要在查询条件对象中,定义好相应业务的查询参数,排序信息,请求记录数和每页大小信息等内容,根据这些查询信息,我们在 ...

  4. (四)Asp.net web api中的坑-【api的返回值】

    (四)Asp.net web api中的坑-[api的返回值] 原文:(四)Asp.net web api中的坑-[api的返回值] void无返回值 IHttpActionResult HttpRe ...

  5. ASP.NET Web API中的参数绑定总结

    ASP.NET Web API中的action参数类型可以分为简单类型和复杂类型. HttpResponseMessage Put(int id, Product item) id是int类型,是简单 ...

  6. 【ASP.NET Web API教程】5.5 ASP.NET Web API中的HTTP Cookie

    5.5 HTTP Cookies in ASP.NET Web API 5.5 ASP.NET Web API中的HTTP Cookie 本文引自:http://www.asp.net/web-api ...

  7. ASP.NET Web API中实现版本

    一般来说,api 接口是提供给其他系统或是其他公司使用,不能随意频繁的变更.然而,需求和业务不断变化,接口和参数也会发生相应的变化.如果直接对原来的接口进行修改,势必会影响线其他系统的正常运行.这就必 ...

  8. 在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务

    在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务 https://procodeguide.com/programming/polly-in-aspnet-core ...

  9. 监控系统简介(二):使用 App Metrics 在 ASP.NET Web API 中记录指标

    回顾 在<监控系统简介:使用 Prometheus 与 Grafana>一文中,我们了解了什么是监控系统,Prometheus 这一监控工具及它提供的数据类型.PromQL 以及 Graf ...

最新文章

  1. 如何利用微信小游戏的分包加载机制突破4M代码包体积限制
  2. JavaScript中正则表达式学习(一)
  3. [CQOI2018] 异或序列
  4. 平安人寿福利BUFF重磅推介 | 北京研发中心职位速递
  5. VS2010+WinXP+MFC程序 无法定位程序输入点于动态链接库
  6. 02.德国博士练习_01_cluster_install
  7. 求知无限,刷新.NET 中国社区
  8. 在Golang中使用Protobuf
  9. ceisum 加载geojson,webgl 加载geojson数据没有贴地
  10. Exchange Server 2016 独立部署/共存部署 (八)—— 边缘角色服务器
  11. 最近发现一个小生意非常不错
  12. CVE-2016-1240 Tomcat 服务本地提权漏洞
  13. Doris之磁盘空间管理(重点)
  14. Pandas python
  15. 计算机网络技术用古诗文描述,【多媒体技术论文】多媒体技术在古诗文教学的运用(共2828字)...
  16. 知行合一 中国古代小说鉴赏 大作业
  17. java代码下划线是啥意思_关于语法:在这个Java代码中,下划线实际上做了什么?...
  18. 移植vsftpd FTP服务器到ARM-Linux系统
  19. 手机淘宝APP关键词搜索采集方案
  20. 分类常用的神经网络模型,典型神经网络模型包括

热门文章

  1. oracle数据库查询open_cursors值的sql语句,达梦数据库查询MAX_SESSION_STATEMENT值方法,MAX_SESSION_STATEMENT的最大值、上限是多少
  2. 解决MPLAB X IDE的文件注释出现乱码的问题
  3. PID算法-温度控制
  4. [YTU]_2617(B C++时间类的运算符重载)
  5. funm--矩阵的函数运算
  6. OpenCV学习--saturate_cast防止数据溢出
  7. java方法体逻辑不会写怎么办,想自己写框架?不会写Java注解可不行
  8. java dozer 深度_java – Dozer深度映射设置为Set
  9. CCS(Code Composer Studio) 10.2.0的下载和安装(最新教程)
  10. doc命令下查看java安装路径