I.はじめミドルウェア
ミドルウェアは、論理コンポーネントのアプリケーション処理要求と応答ロジックのための導管に組み付けられます。
各コンポーネントは使用できます
1.リクエストがパイプライン内の次のコンポーネントに渡されているか否かを選択します。
2.パイプラインで作業を実行した後、次のコンポーネントを呼び出す前に。
、各HTTPリクエストの処理を要求パイプラインを構築するための要求(Requestdelegates)を委任します。
第二に、ミドルウェアの処理フロー
アウトミドルウェア応答要求ロジックおよびロジックの実行に出たとき、入ってくるレジスタミドルウェア、反対の論理応答うちの論理的順序。
要求一連のミドルウェア要求処理と以下に示すように、それぞれ、三の登録ミドルウェアMiddleware1、Middleware2、Middleware3を委託。要求は、要求が論理Middleware2に行く、)論理ロジック要求が入ってくる移動し、次Requestdelegatesデリゲートオブジェクト(の種類を実行する第二、黒矢印で、中間ミドルウェア後の最終仕上げまで、うオーダーMiddleware3、Middleware2で、Middleware1応答ロジックは、より多くのロジックを行きます。
第三に、カスタムミドルウェア
多くのミドルウェアがありますが、マイクロソフトが私を提供してきましたが、ミドルウェアにそれをカスタマイズする方法?
最初のステップ:クラスの定義、および次のコードを追加します
パブリック クラスMiddleware1 { プライベート 読み取り専用RequestDelegateは-next; /// <まとめ> /// ミドルウェアこの中間RequestDelegateを委任するためのパイプラインの実行要求を、他のパラメータもまた、注射の方法により得られた場合 /// < /要約> /// <PARAM NAME = "次へ"> </ PARAM> 公共Middleware1(RequestDelegate NEXT) { // 注入法でオブジェクトを取得 -next = 次に; } /// <まとめ> /// カスタムミドルウェアロジックが実行する /// </要約> /// <PARAM NAME = "文脈"> </ param>の /// <戻り値> </戻ります> パブリック 非同期タスクの呼び出し(のHttpContextコンテキスト) { Console.WriteLineを(「Request1 」); // 要求が検証する論理的、順番が来る、単語を印刷 待つ -next(コンテキスト); //コンテキストに入る次の中間の実行 のawait context.Response.WriteAsync("<P> response1 </ P> "); // 論理アウト応答出力ワードのシーケンスを検証するために } }
ステップ2:設定メソッドの起動クラスでは、ミドルウェアUseMiddlewareメソッドを呼び出すことにより、登録されています。自己定義ニーズミドルウェアInvokeメソッドは、パラメータを渡す場合は、パラメータはUseMiddlewareメソッドに渡すことができ、かつMiddleware1カスタム依存性の注入は、GETに渡されたパラメータによって必要とされます
公共の 無効設定(アプリケーションIApplicationBuilder、IHostingEnvironment ENV) { // 順次登録Middleware1、Middleware2、Middleware3。Middleware2、Middleware3とMiddleware1、私が書くために気にしないであろう app.UseMiddleware <Middleware1>を(); app.UseMiddleware <Middleware2> (); app.UseMiddleware <Middleware3> (); }
結果: