কম্পিউটার

IApplicationBuilder.Use() এবং IApplicationBuilder.Run() C# Asp.net কোরের মধ্যে পার্থক্য কী?


আমরা IApplicationBuilder উদাহরণ ব্যবহার করে স্টার্টআপ ক্লাসের কনফিগার পদ্ধতিতে মিডলওয়্যার কনফিগার করতে পারি।

Run() হল 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 ফাংশনটি অ্যাসিঙ্ক্রোনাস নয় এবং তাই এটি কার্যকর করার সময় পর্যন্ত থ্রেডটিকে ব্লক করবে। সুতরাং, অ্যাসিঙ্ক ব্যবহার করে এটিকে অ্যাসিঙ্ক্রোনাস করুন এবং কর্মক্ষমতা এবং মাপযোগ্যতা উন্নত করার জন্য অপেক্ষা করুন৷

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! ");
   }
}

Run() ব্যবহার করে একাধিক মিডলওয়্যার কনফিগার করুন

নিম্নলিখিতগুলি সর্বদা প্রথম রান পদ্ধতি চালাবে এবং কখনই এই দ্বিতীয় রান পদ্ধতিতে পৌঁছাবে না

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");
   });
}

ব্যবহার করুন

একাধিক মিডলওয়্যার কনফিগার করতে, Use() এক্সটেনশন পদ্ধতি ব্যবহার করুন। এটি Run() পদ্ধতির অনুরূপ ব্যতীত এটি এই অনুক্রমে পরবর্তী মিডলওয়্যার আহ্বান করার জন্য পরবর্তী প্যারামিটার অন্তর্ভুক্ত করে

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. C# ASP.NETWebAPI-তে FromBody এবং FromUri অ্যাট্রিবিউটের মধ্যে পার্থক্য কী?

  2. C# এ একটি ইন্টারফেস এবং একটি ক্লাসের মধ্যে পার্থক্য কী?

  3. C# এ আক্ষরিক এবং ধ্রুবকের মধ্যে পার্থক্য কী?

  4. C# এ স্ট্রিং এবং স্ট্রিং এর মধ্যে পার্থক্য কি?