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

王林
リリース: 2023-09-13 21:13:06
転載
1000 人が閲覧しました

向 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 メソッドは、パスベースのマッピングに加えて、述語ベースのマッピングもサポートします。

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

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

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート