2

.Net Web API にアプリケーションがあります。各アクションが実行された後、結果を見て、その中の何かを変更したいと思います。

私のAPI controllerActionが次のように見えるとしましょう

public Car Get()
{
  ...
}

アクションが実行された後、この場合は Car の戻り値の型のプロパティを変更したいと思います (ただし、アクションごとに異なる場合があります)。

アクションが実行された後に IActionFilter.OnActionExecuted() が呼び出されることを知っています。しかし、このメソッドで戻り値の型にアクセスする方法がわかりません。

4

1 に答える 1

3

これは、アクションが実行されたコンテキストの応答を確認することで実行できるはずです。車を手に入れて改造したい場合は、次のように書くことができます。

Car car;
if (actionExecutedContext.Response.TryGetContentValue<Car>(out car))
{
    // modify the car to send back in the response
}

応答のタイプを確認したい場合は、次のように記述できます。

ObjectContent objectContent = actionExecutedContext.Response.Content as ObjectContent;
if (objectContent != null)
{
    Type responseType = objectContent.ObjectType;
    // do stuff with the type
}
于 2013-04-22T04:53:38.893 に答える