技术分析

jsfx
数据可视化技术分析

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

技术分析9735年前 (2019-11-05)大数据

知识点回顾:

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

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


 

 

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

扫描二维码推送至手机访问。

版权声明:本文由策意data发布,如需转载请注明出处。

转载请注明出处http://dsj.ceyicm.cn/reed/36.html

分享给朋友:

相关文章

SpringBoot+SparkSQL操作JSON字符串

SpringBoot+SparkSQL操作JSON字符串

在SpringBoot中通过maven来做包管理构建,有几个地方需要注意一下的,需要解决包之间的冲突,否则运行时会报错:(1)sparkSQL中需要先排除两个包: 1  ...

集成Swagger接口文档分组配置.net core

集成Swagger接口文档分组配置.net core

(一)回顾:上一篇为大家介绍了在.NET Core中如何集成Swagger的介绍,想想集成操作其实非常简单便捷,实质就三个步骤:(1)在项目中执行nuget命令,拉取Swagger包到项目:Insta...

将.NET Core编写的数据可视化项目打包成Docker镜像,实现容器化部署

将.NET Core编写的数据可视化项目打包成Docker镜像,实现容器化部署

第一步 环境准备,安装docker环境:1234567891011通过命令安装docker:sudo apt-get install -y docker.io 启动Docker服务...

Jenkins+svn+ftp自动化发布asp.net项目

Jenkins+svn+ftp自动化发布asp.net项目

今天将自己所掌握的(Jenkins+svn+ftp自动化发布asp.net项目)知识分享给大家,希望能帮组到大家:(1)先下载Jenkins并安装;(2)安装.Net所需要的插件;(3)配置插件;(4...

.NET Core中使用OOM框架,AutoMapper的使用介绍

.NET Core中使用OOM框架,AutoMapper的使用介绍

(一)什么是OOM:OOM顾名思义,Object-Object-Mapping实体间相互转换,AutoMapper其意义在于帮助你无需手动的转换简单而又麻烦的实体间关系。(二)AutoMapper是什...

为什么不再使用D3.js、Echarts做数据可视化

为什么不再使用D3.js、Echarts做数据可视化

D3是什么全称是(Data-Driven Documents),一个被数据驱动的文档简单点,是一个JavaScript函数库,使用它主要用来做数据可视化。D3 是一个开源项目,作者是纽约时报的工程师。...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
每一次合作都多一位朋友

体验账号:administrator 密码:administrator

  • 7X12小时
    7X12小时

    专家1V1服务

  • 业务保障
    业务保障

    扎实数据根基

  • 合作伙伴
    合作伙伴

    NBIDataVis

  • 强大交付
    强大交付

    实现客户价值