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

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

আমরা IHttpActionResult ইন্টারফেস ইমপ্লিমেন্ট করে আমাদের নিজস্ব কাস্টম ক্লাস তৈরি করতে পারি রেজাল্ট টাইপ হিসেবে। `IHttpActionResult`-এ একটি মেথড থাকে, `ExecuteAsync`, যা এসিনক্রোনাসলি একটি `HttpResponseMessage` ইনস্ট্যান্স তৈরি করে।

public interface IHttpActionResult
{
    Task ExecuteAsync(CancellationToken cancellationToken);
}

যদি একটি কন্ট্রোলার একশন `IHttpActionResult` রিটার্ন করে, Web API `ExecuteAsync` মেথডটি কল করে একটি `HttpResponseMessage` তৈরি করতে। তারপর এটি `HttpResponseMessage`-কে একটি HTTP রেসপন্স মেসেজে কনভার্ট করে।

উদাহরণ

আমাদের নিজস্ব কাস্টম রেজাল্ট পেতে হলে `IHttpActionResult` ইন্টারফেস ইমপ্লিমেন্ট করে একটি ক্লাস তৈরি করতে হবে।

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

namespace DemoWebApplication.Controllers
{
    public class CustomResult : IHttpActionResult
    {
        string _value;
        HttpRequestMessage _request;

        public CustomResult(string value, HttpRequestMessage request)
        {
            _value = value;
            _request = request;
        }

        public Task ExecuteAsync(CancellationToken cancellationToken)
        {
            var response = new HttpResponseMessage()
            {
                Content = new StringContent($"Customized Result: {_value}"),
                RequestMessage = _request
            };
            return Task.FromResult(response);
        }
    }
}

কন্ট্রোলার একশন

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

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

এন্ডপয়েন্ট থেকে কাস্টম রেজাল্ট রিটার্ন হলে Postman আউটপুট নিচের মত হবে।

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

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

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

  3. C# ASP.NET WebAPI-তে কন্ট্রোলার একশনের বিভিন্ন রিটার্ন টাইপ কী কী?

  4. C#-তে জেনেরিক মেথড থেকে null কীভাবে রিটার্ন করবেন?