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

C# ASP.NET WebAPI में एक्शन मेथड से कस्टम रिजल्ट टाइप कैसे लौटाएं?

हम IHttpActionResult इंटरफ़ेस को इम्प्लीमेंट करके अपनी खुद की कस्टम क्लास को रिजल्ट टाइप के रूप में बना सकते हैं। IHttpActionResult में एक सिंगल मेथड, ExecuteAsync होता है, जो एसिंक्रोनसली एक HttpResponseMessage इंस्टेंस बनाता है।

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

यदि एक कंट्रोलर एक्शन IHttpActionResult लौटाता है, तो Web API HttpResponseMessage बनाने के लिए ExecuteAsync मेथड को कॉल करता है। फिर यह 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 में CORS समस्या कैसे हल करें? C# ASP.NET WebAPI में CORS समस्या कैसे हल करें?

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

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

    Web API एक्शन मेथड के निम्नलिखित रिटर्न टाइप्स हो सकते हैं। Void Primitive Type/Complex Type HttpResponseMessage IHttpActionResult 1. Void यह आवश्यक नहीं है कि सभी एक्शन मेथड्स कुछ न कुछ लौटाएं। इनका रिटर्न टाइप void हो सकता है। उदाहरण using DemoWebApplication.Models; using Syst

  1. C# में जेनेरिक मेथड से null कैसे लौटाएं? C# में जेनेरिक मेथड से null कैसे लौटाएं?

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