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

C# ASP.NET कोर पाइपलाइन में मिडलवेयर जोड़ते समय मैप एक्सटेंशन का क्या उपयोग है?

मिडलवेयर ऐसे सॉफ़्टवेयर घटक हैं जिन्हें अनुरोधों और प्रतिक्रियाओं को संभालने के लिए एक एप्लिकेशन पाइपलाइन में इकट्ठा किया जाता है।

प्रत्येक घटक चुनता है कि पाइपलाइन में अगले घटक को अनुरोध पास करना है या नहीं, और पाइपलाइन में अगले घटक को शामिल करने से पहले और बाद में कुछ क्रियाएं कर सकता है।

पाइप लाइन को ब्रांच करने के लिए मैप एक्सटेंशन का उपयोग कन्वेंशन के रूप में किया जाता है।

अनुरोध के पथ के आधार पर अनुरोध प्रतिनिधियों से मिलान करने के लिए मानचित्र विस्तार विधि का उपयोग किया जाता है। नक्शा बस एक पथ और एक फ़ंक्शन को स्वीकार करता है जो एक अलग मिडलवेयर पाइपलाइन को कॉन्फ़िगर करता है।

निम्नलिखित उदाहरण में, /maptest के आधार पथ के साथ किसी भी अनुरोध को HandleMapTest विधि में कॉन्फ़िगर की गई पाइपलाइन द्वारा नियंत्रित किया जाएगा।

उदाहरण

private static void HandleMapTest(IApplicationBuilder app){
   app.Run(async context =>{
      await context.Response.WriteAsync("Map Test Successful");
   });
}
public void ConfigureMapping(IApplicationBuilder app){
   app.Map("/maptest", HandleMapTest);
}

पथ-आधारित मानचित्रण के अलावा, मैपव्हेन विधि विधेय-आधारित मिडलवेयर ब्रांचिंग का समर्थन करती है, जिससे अलग पाइपलाइनों को एक बहुत ही लचीले फैशन में बनाया जा सकता है।

Func प्रकार के किसी भी विधेय का उपयोग पाइपलाइन की नई शाखा के अनुरोधों को मैप करने के लिए किया जा सकता है।

private static void HandleBranch(IApplicationBuilder app){
   app.Run(async context =>{
      await context.Response.WriteAsync("Branch used.");
   });
}
public void ConfigureMapWhen(IApplicationBuilder app){
   app.MapWhen(context => {
      return context.Request.Query.ContainsKey("branch");
   }, HandleBranch);
      app.Run(async context =>{
         await context.Response.WriteAsync("Hello from " + _environment);
   });
}

मैप्स को नेस्ट भी किया जा सकता है

app.Map("/level1", level1App => {
   level1App.Map("/level2a", level2AApp => {
      // "/level1/level2a"
      //...
   });
   level1App.Map("/level2b", level2BApp => {
      // "/level1/level2b"
      //...
   });
});

  1. ASP.Net MVC C# में ChildActionOnly विशेषता का उपयोग क्या है?

    चाइल्ड एक्शन केवल चाइल्ड रिक्वेस्ट द्वारा ही एक्सेस किया जा सकता है। यह URL अनुरोधों का जवाब नहीं देगा। यदि कोई प्रयास किया जाता है, तो रनटाइम त्रुटि को यह कहते हुए फेंक दिया जाएगा - चाइल्ड एक्शन केवल चाइल्ड रिक्वेस्ट द्वारा ही एक्सेस किया जा सकता है। एक्शन () और रेंडरएक्शन () एचटीएमएल हेल्पर्स का उ

  1. ASP.Net MVC C# में NonActionAttribute का क्या महत्व है?

    गैर कार्रवाई विशेषता का उपयोग तब किया जाता है जब हम नियंत्रक में सार्वजनिक विधि चाहते हैं लेकिन इसे एक क्रिया विधि के रूप में नहीं मानना ​​​​चाहते हैं। एक क्रिया विधि एक नियंत्रक में एक सार्वजनिक विधि है जिसे यूआरएल का उपयोग करके बुलाया जा सकता है। इसलिए, डिफ़ॉल्ट रूप से, यदि हमारे पास नियंत्रक में

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

    वेबएपी फ्रेमवर्क अनुरोध प्रसंस्करण के विभिन्न स्तरों पर अतिरिक्त तर्क को इंजेक्ट करने के लिए फिल्टर का उपयोग किया जाता है। फ़िल्टर क्रॉस-कटिंग चिंताओं (लॉगिंग, प्राधिकरण और कैशिंग) के लिए एक रास्ता प्रदान करते हैं। एक घोषणात्मक या प्रोग्रामेटिक तरीके से एक क्रिया विधि या नियंत्रक पर फ़िल्टर लागू किए