2013-04-21 67 views
2

我在.Net Web API上有一个应用程序。每个动作执行后,我想看看结果并改变其中的内容。.Net Web API IActionFilter.OnActionExecuted返回类型

说我的API controllerAction看起来像

public Car Get() 
{ 
    ... 
} 

执行该操作后,我想修改返回类型的属性,在这种情况下,汽车(但可以为不同的操作不同)。

我知道IActionFilter.OnActionExecuted()在执行动作后会被调用。但我不确定如何访问此方法中的返回类型。

回答

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 
} 
+0

感谢会给它一个尝试 – ajp 2013-04-22 13:46:26

+1

还记得添加“使用System.Net.Http;”在类文件的顶部,如果你没有它。 “TryGetContentValue”是在此命名空间中定义的扩展方法 – 2013-05-22 08:43:51