最近在项目中有这样一个需求,记录每次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); } }