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

IApplicationBuilder.Use() और IApplicationBuilder.Run() C# Asp.net Core में क्या अंतर है?

हम स्टार्टअप क्लास के कॉन्फिगर मेथड में IApplicationBuilder इंस्टेंस का उपयोग करके मिडलवेयर को कॉन्फ़िगर कर सकते हैं।

रन () IApplicationBuilder इंस्टेंस पर एक विस्तार विधि है जो एप्लिकेशन के अनुरोध पाइपलाइन में एक टर्मिनल मिडलवेयर जोड़ता है।

रन विधि IApplicationBuilder पर एक विस्तार विधि है और RequestDelegate के पैरामीटर को स्वीकार करती है।

रन विधि के हस्ताक्षर

public static void Run(this IApplicationBuilder app, RequestDelegate handler)

अनुरोध प्रतिनिधि के हस्ताक्षर

public delegate Task RequestDelegate(HttpContext context);

उदाहरण

public class Startup{
   public Startup(){
   }
   public void Configure(IApplicationBuilder app, IHostingEnvironment env,
   ILoggerFactory loggerFactory){
      //configure middleware using IApplicationBuilder here..
      app.Run(async (context) =>{
         await context.Response.WriteAsync("Hello World!");
      });
      // other code removed for clarity..
   }
}

उपरोक्त MyMiddleware फ़ंक्शन एसिंक्रोनस नहीं है और इसलिए जब तक यह निष्पादन पूरा नहीं कर लेता तब तक थ्रेड को ब्लॉक कर देगा। इसलिए, async का उपयोग करके इसे एसिंक्रोनस बनाएं और प्रदर्शन और मापनीयता में सुधार के लिए प्रतीक्षा करें।

public class Startup{
   public Startup(){
   }
   public void Configure(IApplicationBuilder app, IHostingEnvironment env){
      app.Run(MyMiddleware);
   }
   private async Task MyMiddleware(HttpContext context){
      await context.Response.WriteAsync("Hello World! ");
   }
}

रन () का उपयोग करके एकाधिक मिडलवेयर कॉन्फ़िगर करें

निम्नलिखित हमेशा पहली रन विधि निष्पादित करेंगे और दूसरी रन विधि तक कभी नहीं पहुंचेंगे

public void Configure(IApplicationBuilder app, IHostingEnvironment env){
   app.Run(async (context) =>{
      await context.Response.WriteAsync("1st Middleware");
   });
   // the following will never be executed
   app.Run(async (context) =>{
      await context.Response.WriteAsync(" 2nd Middleware");
   });
}

उपयोग करें

एकाधिक मिडलवेयर को कॉन्फ़िगर करने के लिए, उपयोग () एक्सटेंशन विधि का उपयोग करें। यह रन () विधि के समान है सिवाय इसके कि इसमें अगले मिडलवेयर को इनक्वेंस करने के लिए अगला पैरामीटर शामिल है

public void Configure(IApplicationBuilder app, IHostingEnvironment env){
   app.Use(async (context, next) =>{
      await context.Response.WriteAsync("1st Middleware!");
      await next();
   });
   app.Run(async (context) =>{
      await context.Response.WriteAsync("2nd Middleware");
   });
}

  1. सी # ASP.NETWebAPI में FromBody और FromUri विशेषताओं के बीच क्या अंतर है?

    जब ASP.NET वेब API किसी नियंत्रक पर किसी विधि को कॉल करता है, तो उसे पैरामीटर के लिए मान सेट करना चाहिए, एक प्रक्रिया जिसे पैरामीटर बाइंडिंग कहा जाता है। एक मॉडल (एक एक्शन पैरामीटर) को बांधने के लिए, जो सामान्य रूप से एक फॉर्मेटर के लिए डिफ़ॉल्ट होगा, यूआरआई से हमें इसे [FromUri] विशेषता के साथ सजा

  1. C# में शाब्दिक और स्थिरांक में क्या अंतर है?

    स्थिरांक निश्चित मानों को संदर्भित करता है जो प्रोग्राम निष्पादन के दौरान परिवर्तित नहीं हो सकता है। इन निश्चित मूल्यों को शाब्दिक भी कहा जाता है। स्थिरांक किसी भी मूल डेटा प्रकार के हो सकते हैं जैसे पूर्णांक स्थिरांक, फ़्लोटिंग स्थिरांक, वर्ण स्थिरांक, या स्ट्रिंग शाब्दिक। गणन स्थिरांक भी हैं। एक

  1. सी # में स्ट्रिंग और स्ट्रिंग के बीच क्या अंतर है?

    String System.String के लिए खड़ा है जबकि string System.String के लिए C# में एक उपनाम है - उदाहरण के लिए string str = "Welcome!"; यह आवश्यक नहीं है, लेकिन आम तौर पर जब आप कक्षाओं के साथ काम करते हैं तो स्ट्रिंग का उपयोग किया जाता है। string str = String.Format("Welcome! {0}!", u