操作过滤器特性ActionFilterAttribute:可以在action执行前/后分别增加非业务逻辑
在WebApiConfig.cs Register方法中对全部webapi全部注册:config.Filters.Add(new CustomActionAttribute());
在控制器名上添加特性[CustomActionAttribute]实现该控制器下的所有方法注册。也可以单独对某api方法上添加特性[CustomActionAttribute]注册
public class CustomActionAttribute : ActionFilterAttribute
{
/// <summary>
/// 方法执行前
/// </summary>
/// <param name="actionContext"></param>
public override void OnActionExecuting(HttpActionContext actionContext)
{
Console.WriteLine("OnActionExecuting" + actionContext.Request.RequestUri.AbsoluteUri);
//可以完成数据验证
//actionContext.ModelState.IsValid 方法执行前完成检测
//actionContext.Response
base.OnActionExecuting(actionContext);
}
/// <summary>
/// 方法执行后
/// </summary>
/// <param name="actionExecutedContext"></param>
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
Console.WriteLine("OnActionExecuted");
//actionExecutedContext.Response
base.OnActionExecuted(actionExecutedContext);
}
}