Maison > développement back-end > Tutoriel C#.Net > Quelle est la différence entre IApplicationBuilder.Use() et IApplicationBuilder.Run() C# Asp.net Core ?

Quelle est la différence entre IApplicationBuilder.Use() et IApplicationBuilder.Run() C# Asp.net Core ?

WBOY
Libérer: 2023-09-06 16:01:09
avant
828 Les gens l'ont consulté

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

Nous pouvons configurer le middleware dans la méthode Configure de la classe Startup, en utilisant Instance IApplicationBuilder.

Run() est une méthode d'extension sur une instance IApplicationBuilder qui ajoute un terminal

Ajoutez un middleware au pipeline de requêtes de votre application.

La méthode Run est une méthode d'extension de IApplicationBuilder et accepte un

Paramètres de RequestDelegate. La signature de

Méthode Run

public static void Run(this IApplicationBuilder app, RequestDelegate handler)
Copier après la connexion

La signature de RequestDelegate

public delegate Task RequestDelegate(HttpContext context);
Copier après la connexion

Exemple

La traduction chinoise est :

Exemple

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..
   }
}
Copier après la connexion

La fonction MyMiddleware ci-dessus n'est pas asynchrone et bloque donc le thread jusqu'à ce qu'il termine l'exécution. Donc, en utilisant async et Attendez pour améliorer les performances et l’évolutivité.

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! ");
   }
}
Copier après la connexion

Utilisez Run() pour configurer plusieurs middlewares

Le code suivant exécutera toujours la première méthode Run et n'atteindra jamais

Méthode 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");
   });
}
Copier après la connexion

USE

Pour configurer plusieurs middlewares, utilisez la méthode d'extension Use(). C'est similaire à Run() méthode, sauf qu'elle contient le paramètre suivant pour appeler le prochain middleware Séquence

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");
   });
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal