কম্পিউটার

C# ASP.NET WebAPI-তে একটি অ্যাকশন পদ্ধতি থেকে কাস্টম ফলাফলের ধরন কীভাবে ফেরত দেওয়া যায়?


আমরা IHttpActionResult ইন্টারফেস প্রয়োগ করে ফলাফলের ধরন হিসাবে আমাদের নিজস্ব কাস্টম ক্লাস তৈরি করতে পারি . IHttpActionResult-এ একটি একক পদ্ধতি রয়েছে, ExecuteAsync, যা অ্যাসিঙ্ক্রোনাসভাবে একটি HttpResponseMessage উদাহরণ তৈরি করে৷

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

যদি একটি কন্ট্রোলার অ্যাকশন একটি IHttpActionResult প্রদান করে, Web API একটি HttpResponseMessage তৈরি করতে ExecuteAsyncmethod কল করে। তারপর এটি 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<HttpResponseMessage> 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<Student> students = new List<Student>{
            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);
      }
   }
}

এখানে শেষ পয়েন্টের পোস্টম্যান আউটপুট যা কাস্টম ফলাফল প্রদান করে।

C# ASP.NET WebAPI-তে একটি অ্যাকশন পদ্ধতি থেকে কাস্টম ফলাফলের ধরন কীভাবে ফেরত দেওয়া যায়?


  1. কিভাবে আমরা C# ASP.NET WebAPI তে অ্যাকশন পদ্ধতির জন্য উপনামের নাম নির্ধারণ করতে পারি?

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

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

  4. কিভাবে আমরা C# এ একটি জেনেরিক পদ্ধতি থেকে নাল ফেরত দিতে পারি?