在 IExceptionFilter 中访问 ActionArguments

Access ActionArguments in IExceptionFilter

是否可以在 IExceptionFilter 中访问 ActionArguments

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

在 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)

我想通了:)

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