Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah perbezaan antara IApplicationBuilder.Use() dan IApplicationBuilder.Run() C# Asp.net Core?

Apakah perbezaan antara IApplicationBuilder.Use() dan IApplicationBuilder.Run() C# Asp.net Core?

WBOY
WBOYke hadapan
2023-09-06 16:01:09774semak imbas

IApplicationBuilder.Use() 和 IApplicationBuilder.Run() C# Asp.net Core 之间有什么区别?

Kami boleh mengkonfigurasi perisian tengah dalam kaedah Konfigurasi kelas Permulaan, menggunakan Contoh IApplicationBuilder.

Run() ialah kaedah lanjutan pada contoh IApplicationBuilder yang menambah terminal

Tambah perisian tengah pada saluran paip permintaan aplikasi anda.

Kaedah Run ialah kaedah lanjutan IApplicationBuilder dan menerima a

Parameter Perwakilan Permintaan. Tandatangan

Run method

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

Tandatangan RequestDelegate

public delegate Task RequestDelegate(HttpContext context);

Contoh

Terjemahan bahasa Cina ialah:

Contoh

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..
   }
}

Fungsi di atas bukan myMissynchronous sehingga ia selesai pelaksanaan. Jadi dengan menggunakan async dan Tunggu untuk meningkatkan prestasi dan kebolehskalaan.

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

Gunakan Run() untuk mengkonfigurasi berbilang middlewares

Kod berikut akan sentiasa melaksanakan kaedah Run pertama dan tidak pernah mencapai

Kaedah Second 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

Untuk mengkonfigurasi berbilang middleware, gunakan kaedah sambungan Use(). Ia serupa dengan Run() kaedah, kecuali ia mengandungi parameter seterusnya untuk memanggil middleware seterusnya Urutan

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

Atas ialah kandungan terperinci Apakah perbezaan antara IApplicationBuilder.Use() dan IApplicationBuilder.Run() C# Asp.net Core?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam