访问IExceptionFilter中的ActionArguments

时间:2017-11-17 14:37:13

标签: c# asp.net-core action-filter

是否可以访问ActionArguments中的IExceptionFilter

enter image description here

根据上面的图片异常过滤器在可以访问它们的动作过滤器之后运行。所以我不明白为什么他们不能。

在ActionFilter中,您可以像这样访问它

public class MyFilter : IActionFilter
{
    public void OnActionExecuting(ActionExecutingContext context)
    {
        context.ActionArguments // I need access to this in order to find out what type the input argument(s) was.
    }
}

但IExceptionFilter改为使用public void OnException(ExceptionContext context)

1 个答案:

答案 0 :(得分:1)

我明白了:)

public class ExceptionFilter : IExceptionFilter, IActionFilter
{
    private IDictionary<string, object> _actionArguments;

    public void OnException(ExceptionContext context)
    {
        _actionArguments // great success!
    }

    public void OnActionExecuting(ActionExecutingContext context)
    {
        _actionArguments = context.ActionArguments;
    }

    public void OnActionExecuted(ActionExecutedContext context)
    {
        // do nothing
    }
}