작업 필터는 작업 메서드 실행 전후에 추가 논리를 추가하는 데 사용됩니다. OnActionExecuting 및 OnActionExecuted 메서드는 작업 메서드가 실행되기 전후에 논리를 추가하는 데 사용됩니다.
액션 메서드 실행 전후에 일부 정보를 기록하는 ActionFilterAttribute를 구현하는 LogAttribute를 생성해 보겠습니다.
LogAttribute -
예
using System;
using System.Diagnostics;
using System.Web.Http.Controllers;
using System.Web.Http.Filters;
namespace DemoWebApplication.Controllers{
public class LogAttribute : ActionFilterAttribute {
public override void OnActionExecuting(HttpActionContext actionContext){
Debug.WriteLine(string.Format("Action Method {0} executing at {1}",
actionContext.ActionDescriptor.ActionName, DateTime.Now.ToShortDateString()),
"Web API Logs");
}
public override void OnActionExecuted(HttpActionExecutedContext
actionExecutedContext){
Debug.WriteLine(string.Format("Action Method {0} executed at {1}",
actionExecutedContext.ActionContext.ActionDescriptor.ActionName,
DateTime.Now.ToShortDateString()), "Web API Logs");
}
}
} 컨트롤러 작업 -
예
using System.Web.Http;
namespace DemoWebApplication.Controllers{
public class DemoController : ApiController{
[Log]
public IHttpActionResult Get(){
//Some logic
return Ok();
}
}
} OnActionExecuting 및 OnActionExecuted 메소드가 구현된 Log 속성을 사용했기 때문에 디버그 콘솔에 로그 정보가 추가됩니다.
