WCF Web API を使用して、アプリケーション ロジックが実行された後、ユーザーに返される前に、応答のコンテンツ本文を変更するにはどうすればよいでしょうか。目標は、suppressstatuscontent が true の場合:
- コンテンツ本文に statuscode フィールドを追加する
- 応答のステータスコードを 200 に変更します
私は DelegatingChannel をオーバーライドし、SendAsnyc には次のようなコードがあります。
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
return base.SendAsync(request, cancellationToken).ContinueWith<HttpResponseMessage>(task =>
{
var response = task.Result;
if (CheckIfRequestHadSuppressStatusCode(request) == true)
{
string newResponse = (response.Content == null) ? "" : response.Content.ReadAsString();
newResponse = "<body>" +newResponse + "</body><statuscode>" + response.StatusCode + "</statuscode>";
response.StatusCode = HttpStatusCode.OK;
}
return response;
});
大きな問題は、これが BOTHとを処理しないことです。これは非常にハックな感じがするので、問題に対処するためのより良い方法があるに違いないと感じています。xml
Json