そのため、古い WCF レスト サービスでは、応答オブジェクトを調べてインターフェイス メンバー GetStatus を実行し、ステータス コードを取得してから WebOperationContext に設定するヘルパー クラスがありました。Web API ではこれができなくなったので、これをDelegatingHandler設定できるように検討しています。シナリオは次のとおりです。
すべての POST が201 - Createdコードになるわけではありません。たとえば、複雑なパラメーターを使用した GET タイプの操作に使用されるものもあります。ただし、一部の POST 操作は 201 になります。応答オブジェクトには、操作中に実行されるビジネス ロジックで設定される HttpStatus コードを返すIResultメソッドを持つインターフェイスが呼び出されます。GetResult()したがって、サービス操作 (投稿) を実行するとします。
var result = AdvancedSearch(myPayload);
を実行すると、200result.GetResult()の an が返されます。HttpStatus
var result = AddNewUser(myPayload);
そして実行しresult.GetResult()ます。201HttpStatusの
現在、201 を返す必要があるこれらの操作では、単純にrequest.CreateResponse(...);から新しい応答オブジェクトを作成します。コントローラー自体のメソッド。しかし、チームの上級者の何人かはそれを好まない。彼らはこれを処理するための中心的なものを望んでいます。私たちが以前持っていたものに似たもの。
応答コードを設定するためのグローバル コンテキストがないため、DelegatingHandler. メソッドで応答に取り組むことができることは知っていますが、これが可能にContinueなるかどうかはわかりません。このメソッドは、実際の MVC フレームワークの外にある別のパイプラインで実行されることに気付きました。から応答ペイロードを取得し、インターフェイスからメソッドHttpResponseMessageを実行する方法がわかりません。GetResult()IResult
これは可能ですか?これを行う他の方法はありますか?コントローラーで応答を設定するのに行き詰まっていますか(実際にはそれで問題ありません。デューデリジェンスを行っているだけです)。
ティア