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