ActionFilterのOnActionExecutedメソッドを介していくつかのAPIエンドポイントの戻り値を取得する必要があるWebAPIアプリケーションがあります
カスタム属性を使用して、変更する必要のあるデータがあるエンドポイントを識別していますが、HttpActionExecutedContext内から実際の結果オブジェクトを見つけることができないようです。
助けてくれてありがとう!
戻り値は、Response.Content
プロパティを介して取得できます。アクションがオブジェクトを返した場合は、それをObjectContent
にキャストして、そこから戻り値の実際のインスタンスを取得できます。
public class MyFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(HttpActionExecutedContext context)
{
var objectContent = context.Response.Content as ObjectContent;
if (objectContent != null)
{
var type = objectContent.ObjectType; //type of the returned object
var value = objectContent.Value; //holding the returned value
}
}
}