大数据

Hi, 请登录

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

推荐阅读:SEO干货网站内部链接优化与整站优化>>    推荐阅读:一份完整的企业公众号运营草案>>   

知识点回顾:

前面几篇文章分别给大家介绍了

(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)运行,请求一个具体接口,跟踪一下执行顺序:


 

 

可以看到过滤器起到了对应的作用。

来源【大数据】,更多内容/合作请关注「辉哥智库」公众号,赠文案训练手册电子书。

版权声明:本文内容来源互联网整理,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 jkhui22@126.com举报,一经查实,本站将立刻删除。

相关推荐

评论

  • 昵称 (必填)
  • 邮箱
  • 网址
二维码
评论