C# Web API ActionFilter修改返回值
我有一个Web API应用程序,需要通过ActionFilter的OnActionExecuted方法获取一些API端点的返回值 我正在使用一个自定义属性来标识包含需要修改的数据的端点,但是我似乎无法从HttpActionExecutedContext中找到实际的结果对象C# Web API ActionFilter修改返回值,c#,asp.net-web-api,action-filter,C#,Asp.net Web Api,Action Filter,我有一个Web API应用程序,需要通过ActionFilter的OnActionExecuted方法获取一些API端点的返回值 我正在使用一个自定义属性来标识包含需要修改的数据的端点,但是我似乎无法从HttpActionExecutedContext中找到实际的结果对象 谢谢你的帮助 您可以通过Response.Content属性获取返回值。如果您的操作返回了一个对象,则可以将其强制转换为ObjectContent,从中可以获得返回值的实际实例: 公共类MyFilterAttribute:Ac
谢谢你的帮助 您可以通过
Response.Content
属性获取返回值。如果您的操作返回了一个对象,则可以将其强制转换为ObjectContent
,从中可以获得返回值的实际实例:
公共类MyFilterAttribute:ActionFilterAttribute
{
公共覆盖无效OnActionExecuted(HttpActionExecutedContext)
{
var objectContent=context.Response.Content作为objectContent;
if(objectContent!=null)
{
var type=objectContent.ObjectType;//返回对象的类型
var value=objectContent.value;//保存返回值
}
}
}
感谢您的回复。context.Response.Content
的类型是System.Net.Http.ObjectContent
。我只需要System.Collections.Generic.IEnumerable
部分。如何获得它?ObjectContent
是从ObjectContent
派生的,所以只需将context.Response.Content
转换为ObjectContent
,然后您就可以使用toValue
属性来转换为您的IEnumerable
…这对我来说完成了任务。谢谢