क्रिया विधियों के निष्पादन से पहले या बाद में अतिरिक्त तर्क जोड़ने के लिए क्रिया फ़िल्टर का उपयोग किया जाता है। कार्रवाई विधि निष्पादित होने से पहले और बाद में हमारे तर्क को जोड़ने के लिए OnActionExecuting और OnActionExecuted विधियों का उपयोग किया जाता है।
आइए हम एक LogAttribute बनाते हैं जो ActionFilterAttribute को लागू करता है जो क्रिया विधि निष्पादन से पहले और बाद में कुछ जानकारी लॉग करता है।
लॉगएट्रिब्यूट -
उदाहरण
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 विधियाँ लागू हैं, लॉग जानकारी को डीबग कंसोल में जोड़ा जाएगा।