ミドルウェアクラスがなくなるまで正常に実行される3つのミドルウェアクラスがあります。ミドルウェアクラスが呼び出された後、もはや私はルータにリクエストを渡したいと思います。OWINミドルウェアの後にIAppBuilder.UseWebApiを使用する方法
これを行う最善の方法は何ですか?
例えば、私はこのコードを持っている:
// Register middleware. Order is important!
app.Use<Authentication>();
app.Use<Logging>();
app.Use<Example>(configExample);
これはExample
その後、Logging
その後、expected.Onとしてすべての要求最初Authentication
の実行を動作します。
私は、プログラムの起動時に、これらのapp.Use<>()
行がデリゲートを渡すことによって適切なミドルウェアをインスタンス化することがわかります。その代理人には、次のミドルウェアクラスを指すプロパティTarget
が含まれています。明らかな理由から、Example
クラスに渡されたデリゲートは空です(チェーン内の最後のミドルウェアクラスであるため)。
最後にチェーン化されたミドルウェアクラスのコードを変更することなく(私は重要であることを望んでいません)、どのようにルータを呼び出すことができますか?私のルータは、このようなものになります。
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
...
);
config.Routes.MapHttpRoute(
...
);
etc.
app.UseWebApi(config);
を私は答えはミドルウェアが渡されていることであるミドルウェアチェーン