কম্পিউটার টিউটোরিয়াল

C# ASP.NET WebAPI-এ কাস্টম মেসেজ হ্যান্ডলার পাইপলাইনে যোগ করার পদ্ধতি

ASP.NET Web API-এ একটি কাস্টম সার্ভার-सাইড HTTP মেসেজ হ্যান্ডলার তৈরি করতে, আমাদের একটি ক্লাস তৈরি করতে হবে যা System.Net.Http.DelegatingHandler থেকে ডেরাইভ করা থাকতে হবে।

স্টেপ ১ −

একটি কন্ট্রোলার এবং এর সম্পর্কিত অ্যাকশন মেথড তৈরি করুন।

উদাহরণ

using DemoWebApplication.Models; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web.Http; 

namespace DemoWebApplication.Controllers
{ 
    public class StudentController : ApiController
    { 
        List students = new List
        { 
            new Student{ Id = 1, Name = "Mark" }, 
            new Student{ Id = 2, Name = "John" } 
        }; 
        
        public IEnumerable Get()
        { 
            return students; 
        } 
        
        public Student Get(int id)
        { 
            var studentForId = students.FirstOrDefault(x => x.Id == id); 
            return studentForId; 
        } 
    } 
}

স্টেপ ২ −

আমাদের নিজস্ব CustomMessageHandler ক্লাস তৈরি করুন।

উদাহরণ

using System.Net; 
using System.Net.Http; 
using System.Threading; 
using System.Threading.Tasks; 

namespace DemoWebApplication
{ 
    public class CustomMessageHandler : DelegatingHandler
    { 
        protected async override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        { 
            var response = new HttpResponseMessage(HttpStatusCode.OK)
            { 
                Content = new StringContent("Result through custom message handler..") 
            }; 
            
            var taskCompletionSource = new TaskCompletionSource(); 
            taskCompletionSource.SetResult(response); 
            return await taskCompletionSource.Task; 
        } 
    } 
}

আমরা DelegatingHandler থেকে ডেরাইভ করা CustomMessageHandler ক্লাস ডিক্লেয়ার করেছি এবং তার মধ্যে SendAsync() ফাংশন ওভাররাইড করেছি।

যখন একটি HTTP রিকোয়েস্ট আসে, CustomMessageHandler এক্সিকিউট হবে এবং এটি নিজে একটি HTTP মেসেজ রিটার্ন করবে, HTTP রিকোয়েস্টকে আরও প্রসেস না করে। সুতরাং আমরা letztlich প্রতিটি HTTP রিকোয়েস্টকে এর হাইয়ার লেভেলে পৌঁছানো থেকে বাধা দিচ্ছি।

স্টেপ ৩ −

এখন Global.asax ক্লাসে CustomMessageHandler রেজিস্টার করুন।

public class WebApiApplication : System.Web.HttpApplication
{ 
    protected void Application_Start()
    { 
        GlobalConfiguration.Configure(WebApiConfig.Register); 
        GlobalConfiguration.Configuration.MessageHandlers.Add(new CustomMessageHandler()); 
    } 
}

স্টেপ ৪ −

অ্যাপ্লিকেশন চালান এবং URL প্রদান করুন। আউটপুটে আমাদের CustomMessageHandler ক্লাসে সেট করা মেসেজটি দেখাবে। সুতরাং HTTP মেসেজ Get() অ্যাকশনে পৌঁছানোর আগে CustomMessageHandler ক্লাসে ফিরে আসছে।

  1. C# ASP.NET WebAPI-তে একশন মেথডের জন্য আলিয়াস নাম কীভাবে দিবেন?

  2. C# ASP.NET WebAPI-তে ফিল্টারের বিভিন্ন প্রকার কী কী?

  3. C# ASP.NET WebAPI-তে CORS সমস্যা সমাধান কীভাবে করবেন?

  4. C# ASP.NET WebAPI-তে একশন মেথড থেকে কাস্টম রেজাল্ট টাইপ রিটার্ন কীভাবে করবেন?