एक्शन फिल्टर्स का उपयोग एक्शन मेथड्स के निष्पादन से पहले या बाद में अतिरिक्त लॉजिक जोड़ने के लिए किया जाता है। OnActionExecuting और OnActionExecuted मेथड्स का उपयोग एक्शन मेथड के निष्पादन से पहले और बाद में हमारा लॉजिक जोड़ने के लिए किया जाता है।
LogAttribute का निर्माण
आइए एक 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()
{
// कुछ लॉजिक
return Ok();
}
}
}
चूंकि हमने Log एट्रिब्यूट का उपयोग किया है जिसमें OnActionExecuting और OnActionExecuted मेथड्स इम्प्लीमेंटेड हैं, लॉग जानकारी डिबग कंसोल में जुड़ जाएगी।
