ホームページ  >  記事  >  バックエンド開発  >  C# ASP.NET Core パイプラインにミドルウェアを追加する場合、「Map」拡張機能はどのように使用されますか?

C# ASP.NET Core パイプラインにミドルウェアを追加する場合、「Map」拡張機能はどのように使用されますか?

王林
王林転載
2023-09-13 21:13:06994ブラウズ

向 C# ASP.NET Core 管道添加中间件时,“Map”扩展有什么用?

ミドルウェアは、アプリケーション パイプラインに組み込まれるソフトウェア コンポーネントです。 リクエストとレスポンスを処理します。

各コンポーネントは、リクエストを次のコンポーネントに渡すかどうかを選択します。 パイプラインを構築し、次のコンポーネントの前後で特定の操作を実行できます。 パイプラインで呼び出されます。

マップ拡張機能は、パイプライン分岐の規則として使用されます。

マップ拡張メソッドは、要求されたデリゲートに基づいてリクエスト デリゲートを照合するために使用されます。 path.Map は単にパスと関数を受け入れて、個々のミドルウェアを構成します。 パイプライン。

以下の例では、ベース パスが /maptest であるリクエストが処理されます。 HandleMapTest メソッドで構成されたパイプラインを介して。

Example

private static void HandleMapTest(IApplicationBuilder app){
   app.Run(async context =>{
      await context.Response.WriteAsync("Map Test Successful");
   });
}
public void ConfigureMapping(IApplicationBuilder app){
   app.Map("/maptest", HandleMapTest);
}

MapWhen メソッドは、パスベースのマッピングに加えて、述語ベースのマッピングもサポートします。

優れた柔軟性を備えた個別のパイプラインの構築を可能にするミドルウェアのフォーク ファッション.

Func2da37665db817b80d4559ae8a837d13a タイプの述語は、リクエストをマップするために使用できます。 新しいパイプライン ブランチ。

private static void HandleBranch(IApplicationBuilder app){
   app.Run(async context =>{
      await context.Response.WriteAsync("Branch used.");
   });
}
public void ConfigureMapWhen(IApplicationBuilder app){
   app.MapWhen(context => {
      return context.Request.Query.ContainsKey("branch");
   }, HandleBranch);
      app.Run(async context =>{
         await context.Response.WriteAsync("Hello from " + _environment);
   });
}

マップはネストすることもできます

app.Map("/level1", level1App => {
   level1App.Map("/level2a", level2AApp => {
      // "/level1/level2a"
      //...
   });
   level1App.Map("/level2b", level2BApp => {
      // "/level1/level2b"
      //...
   });
});

以上がC# ASP.NET Core パイプラインにミドルウェアを追加する場合、「Map」拡張機能はどのように使用されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。