অ্যাকশন ফিল্টারগুলি অ্যাকশন মেথডের এক্সিকিউশনের আগে বা পরে অতিরিক্ত লজিক যোগ করতে ব্যবহৃত হয়। 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();
}
}
}
যেহেতু আমরা OnActionExecuting এবং OnActionExecuted মেথড ইমপ্লিমেন্ট করা Log অ্যাট্রিবিউট ব্যবহার করেছি, লগ ইনফরমেশন ডিবাগ কনসোলে যোগ হবে।
