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