ตัวกรองการดำเนินการใช้เพื่อเพิ่มตรรกะพิเศษก่อนหรือหลังการดำเนินการตามวิธีการดำเนินการ วิธี OnActionExecuting และ OnActionExecuted ใช้เพื่อเพิ่มตรรกะของเราก่อนและหลังการดำเนินการตามวิธีการ
ให้เราสร้างสร้าง LogAttribute ที่ใช้ ActionFilterAttribute ซึ่งบันทึกข้อมูลบางอย่างก่อนและหลังการดำเนินการตามวิธีการดำเนินการ
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();
}
}
} เนื่องจากเราใช้แอตทริบิวต์ Log ซึ่งมีวิธีการ OnActionExecuting และ OnActionExecuted ข้อมูลบันทึกจะถูกเพิ่มไปยังคอนโซลการดีบัก
