当前位置: 首页 > Web前端 > HTML5

(5).NETCore中Filter的使用介绍

时间:2023-04-05 23:52:29 HTML5

知识点回顾:前几篇介绍了(1)Swagger的集成与使用;(2)JWT认证的集成与使用;(3)OOM框架AnutoMapper对象映射的使用;今天给大家介绍一下Filter的基本用法:filter是做什么的,适合在什么场景下使用?假设当一个项目进行到尾声时,为了保证程序的稳定性、可监控性和可维护性,项目负责人要求对所有方法都添加日志。如果工程比较大,方法很多,岂不是成本很高?努力完成这样的事情。不过不用担心,伟大的语言设计者已经为我们遇到的问题找到了解决方案。过滤器是AOP(Aspect-OrientedProgramming)技术的一种体现。AOP松散耦合,易于扩展。代码复用的特点。通常我们在认证、日志记录、异常获取等这些场景中使用.NETCore中的过滤器生命周期:.NETCore中的过滤器有很多种。今天主要介绍一下ActionFilterAttribute的用法(一)自定义一个Filter类:`publicclassLogFilter:ActionFilterAttribute{publicoverridevoidOnActionExecuting(ActionExecutingContextfilterContext){base.OnActionExecuting(filterContext);/*todoOnActionExecuting*/}publicoverridevoidOnActionExecuting(ActionExecutingContext)filterContext{OnActionExecuted(filterContext);/*todoOnActionExecuted*/}publicoverridevoidOnResultExecuting(ResultExecutingContextfilterContext){base.OnResultExecuting(filterContext);/*todoOnResultExecuting*/}publicoverridevoidOnResultExecuted(ResultExecutedContextfilterContext){base.OnResultExecuted(filterContext);/*todoOnResultExecuted*/}}`(2)注册过滤器,注册过滤器有两种方式,一种是全局注册,一种是本地注册:services.AddMvc(option=>{option.Filters.Add(typeof(日志过滤器));})//全局注册过滤器本地注册,本地注册可以体现在类或方法中:(3)运行,请求特定接口,跟踪执行顺序:可以看到过滤器起到了相应的作用