(五).NET Core中过滤器Filter的使用介绍

2 篇文章 0 订阅
1 篇文章 0 订阅

知识点回顾:
前面几篇文章分别给大家介绍了
(1)Swagger的集成和用法;
(2)JWT身份验证的集成和用法;
(3)OOM框架AnutoMapper对象映射的用法;
今天给大家介绍过滤器Filter的基本使用:

过滤器有什么作用,在什么场景下适合用到它?
假设一个项目进展到快结束的时候,项目leader为了保证程序的稳定性和可监控和维护性要求将所有的方法加上日志,如果项目比较庞大,方法非常多,那岂不是得费很大得劲来完成这样一件事情。不过不用担心,咋们遇到的问题,伟大的语言设计者早已帮我们想好了解决办法过滤器,过滤器是一种AOP(面向切面编程)技术的体现,AOP具有松耦合,易扩展,代码可复用的特点。
通常我们在这些场景下如身份验证、日志记录、异常获取等会使用到过滤器

.NET Core中的过滤器生命周期:
在这里插入图片描述

.NET Core中的过滤器有多种,今天给大家主要介绍ActionFilterAttribute的用法
(1)自定义一个Filter类:

public class LogFilter: ActionFilterAttribute
{

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        base.OnActionExecuting(filterContext);
        /* todo OnActionExecuting */
    }

    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        base.OnActionExecuted(filterContext);
        /* todo OnActionExecuted */
    }

    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        base.OnResultExecuting(filterContext);
        /* todo OnResultExecuting */
    }

    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        base.OnResultExecuted(filterContext);
        /* todo OnResultExecuted */
    }

(2)注册过滤器,注册过滤器有两种方式,一种是全局注册,另一种是局部注册:

//全局注册,在ConfigureServices方法中添加注册代码:
services.AddMvc(option => { option.Filters.Add(typeof(LogFilter)); });  //全局注册过滤器

//局部注册,局部注册可以体现在类或方法上:
在这里插入图片描述
(3)运行,请求一个具体接口http://localhost:5000/api/Values,跟踪一下执行顺序:

在这里插入图片描述
在这里插入图片描述
可以看到过滤器起到了对应的作用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NBI大数据可视化分析

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值