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

WBOY
Lepaskan: 2023-09-06 16:01:09
ke hadapan
776 orang telah melayarinya

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)
Salin selepas log masuk

Tandatangan RequestDelegate

public delegate Task RequestDelegate(HttpContext context);
Salin selepas log masuk

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..
   }
}
Salin selepas log masuk

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! ");
   }
}
Salin selepas log masuk

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");
   });
}
Salin selepas log masuk

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");
   });
}
Salin selepas log masuk

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan