在ExceptionFilterAttribute中获取控制器的返回类型 - HttpActionExecutedContext

时间:2017-03-08 00:24:28

标签: c# .net asp.net-web-api

如果请求生命周期中的某个位置引发了异常,则HttpActionExecutedContext会有null响应。

public class MyExceptionFilterAttribute : ExceptionFilterAttribute
{    
    public override void OnException(HttpActionExecutedContext httpActionExecutedContext)
    {
        // Get expected return type here
        // Can't be httpActionExecutedContext.Response.GetType() because response is null
    }
}

我尝试做的是返回相同的预期对象,但是在对象的某个字段中创建了错误。

有没有办法弄清楚预期的响应类型是什么?

1 个答案:

答案 0 :(得分:2)

您寻求的信息在提供的上下文中。你只需要更深入地在动作描述符中找到它。

public class MyExceptionFilterAttribute : ExceptionFilterAttribute  
    public override void OnException(HttpActionExecutedContext httpActionExecutedContext) {
        // Get expected return type here
        var expectedReturnType = httpActionExecutedContext.ActionContext.ActionDescriptor.ReturnType;

    }
}