Was ist der Unterschied zwischen IApplicationBuilder.Use() und IApplicationBuilder.Run() C# Asp.net Core?

WBOY
Freigeben: 2023-09-06 16:01:09
nach vorne
747 Leute haben es durchsucht

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

Wir können die Middleware in der Methode „Configure“ der Klasse „Startup“ konfigurieren IApplicationBuilder-Instanz.

Run() ist eine Erweiterungsmethode für eine IApplicationBuilder-Instanz, die ein Terminal hinzufügt

Fügen Sie Middleware zur Anforderungspipeline Ihrer Anwendung hinzu.

Run-Methode ist eine Erweiterungsmethode von IApplicationBuilder und akzeptiert a

Parameter von RequestDelegate. Die Signatur der

Run-Methode

public static void Run(this IApplicationBuilder app, RequestDelegate handler)
Nach dem Login kopieren

Die Signatur von RequestDelegate

public delegate Task RequestDelegate(HttpContext context);
Nach dem Login kopieren

Example

Die chinesische Übersetzung lautet:

Example

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..
   }
}
Nach dem Login kopieren

Die obige MyMiddleware-Funktion ist nicht asynchron und blockiert daher den Thread bis die Ausführung abgeschlossen ist. Also durch die Verwendung von async und Warten Sie, bis sich Leistung und Skalierbarkeit verbessern.

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! ");
   }
}
Nach dem Login kopieren

Verwenden Sie Run(), um mehrere Middlewares zu konfigurieren

Der folgende Code führt immer die erste Run-Methode aus und erreicht nie

Zweite Run-Methode

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");
   });
}
Nach dem Login kopieren

USE

Um mehrere Middlewares zu konfigurieren, verwenden Sie die Erweiterungsmethode Use(). Es ähnelt Run() Methode, außer dass sie den nächsten Parameter zum Aufrufen der nächsten Middleware enthält Reihenfolge

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");
   });
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen IApplicationBuilder.Use() und IApplicationBuilder.Run() C# Asp.net Core?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!