zoukankan      html  css  js  c++  java
  • WebApi:自定义筛选器

    最近在项目中有这样一个需求,记录每次Api访问的调用时间,运行时间,传入数据,返回数据等信息。

    第一反应就是添加一个类,用来实现相应的功能,然后在方法的代码中添加,但是这样的话,需要修改所有的方法的代码,以后维护起来想想就可怕。

    一番百度后,发现了筛选器。

    在这里简单记录一下自定义筛选器的创建过程

    1:创建一个类:LogActionFilter,继承ActionFilterAttribute,同时添加AttributeUsageAttribute特性。

    [AttributeUsageAttribute(AttributeTargets.Method|AttributeTargets.Class, Inherited = true,AllowMultiple = true)]
        public class LogActionFilter:ActionFilterAttribute
        {
    
            public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
            {
                base.OnActionExecuting(actionContext);
            }
    
            public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
            {
                base.OnActionExecuted(actionExecutedContext);
            }
    
            
        }
    View Code

     这里有两个重写的方法要注意:

      OnActionExecuting:在调用操作方法之前发生

      OnActionExecuted:在调用操作方法之后发生

    2:根据设定的AttributeUsageAttribute特性,在类或者方法之前添加筛选器

    [AttributeUsageAttribute(AttributeTargets.Method|AttributeTargets.Class, Inherited = true,AllowMultiple = true)]
    View Code
        [LogActionFilter]
        public class ValuesController : ApiController
        {
            /// <summary>
            /// 接口地址测试
            /// </summary>
            /// <returns></returns>
            [System.Web.Http.AcceptVerbs("Post")]
            [System.Web.Http.ActionName("Rename")]
            
            public ResponseBody Get(ResponseBody Abc)
            {
                return Abc;
            }
        }
    View Code

    3:查看效果

      在方法体和OnActionExecuting,OnActionExecuted中添加断点,运行,调用接口后,观察调用的顺序。

     

  • 相关阅读:
    nodejs dateformat date-utils
    nodejs async
    nodejs dateformat date-utils
    nodejs timer block-timer timer-ease
    linux 修改 ssh 的端口号,启动hg服务
    linux 下添加 路由
    tkprof 命令行工具用法
    通过API删除库存货位
    使用FROM个性化修改标准FORM的LOV
    批量更新 ITEM 物料属性
  • 原文地址:https://www.cnblogs.com/MQNH/p/5610650.html
Copyright © 2011-2022 走看看