Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C#

सी # एएसपी.नेट वेबएपीआई में किसी क्रिया विधि से कस्टम परिणाम प्रकार कैसे वापस करें?

हम IHttpActionResult इंटरफ़ेस . को लागू करके परिणाम प्रकार के रूप में अपना स्वयं का कस्टम वर्ग बना सकते हैं . IHttpActionResult में एक ही विधि है, ExecuteAsync, जो अतुल्यकालिक रूप से एक HttpResponseMessage उदाहरण बनाता है।

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

यदि कोई नियंत्रक क्रिया IHttpActionResult लौटाती है, तो वेब API ExecuteAsyncmethod को 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<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);
      }
   }
}

यहाँ समापन बिंदु का डाकिया आउटपुट है जो कस्टम परिणाम देता है।

सी # एएसपी.नेट वेबएपीआई में किसी क्रिया विधि से कस्टम परिणाम प्रकार कैसे वापस करें?


  1. C# ASP.NET WebAPI में CORS समस्या को कैसे हल करें?

    क्रॉस-ओरिजिनल रिसोर्स शेयरिंग (सीओआरएस) एक ऐसा तंत्र है जो ब्राउज़र को एक मूल पर चलने वाले वेब एप्लिकेशन को एक अलग मूल से चयनित संसाधनों तक पहुंच देने के लिए अतिरिक्त HTTP शीर्षलेखों का उपयोग करता है। एक वेब एप्लिकेशन एक क्रॉस-ओरिजिनल HTTP अनुरोध को तब निष्पादित करता है जब वह ऐसे संसाधन का अनुरोध कर

  1. C# ASP.NET WebAPI में कंट्रोलर एक्शन के विभिन्न रिटर्न प्रकार क्या हैं?

    वेब एपीआई क्रिया विधि में निम्नलिखित रिटर्न प्रकार हो सकते हैं। शून्य आदिम प्रकार/जटिल प्रकार HttpResponseMessage IHttpActionResult शून्य - यह आवश्यक नहीं है कि सभी क्रिया विधियों को कुछ वापस करना होगा। इसमें शून्य वापसी प्रकार हो सकता है। उदाहरण using DemoWebApplication.Models using

  1. हम सी # में सामान्य विधि से शून्य कैसे वापस कर सकते हैं?

    जेनरिक हमें प्लेसहोल्डर के साथ एक वर्ग को उसके क्षेत्रों, विधियों, मापदंडों आदि के प्रकार के लिए परिभाषित करने की अनुमति देता है। जेनरिक इन प्लेसहोल्डर्स को संकलन समय पर कुछ विशिष्ट प्रकार से बदल देता है। कोण कोष्ठक <> का उपयोग करके एक सामान्य को परिभाषित किया जा सकता है। संग्रह की प्राथमिक सीमा प्र