Доступен ли CancellationToken в ASP.NET Core ActionFilter? - PullRequest
1 голос
/ 03 октября 2019

Я мог бы добавить CancellationToken в ASP.NET Core метод действия, но вместо этого я бы предпочел работать с ним, используя фильтр действий. Как получить доступ к токену отмены при реализации IAsyncActionFilter? Мой метод не должен иметь его в качестве параметра.

1 Ответ

2 голосов
/ 03 октября 2019

Вы уже опубликовали ссылку на очень хорошую статью, в которой есть небольшая подсказка, где вы можете получить этот токен.

MVC автоматически свяжет любые CancellationToken параметрыв методе действия к токену HttpContext.RequestAborted , используя CancellationTokenModelBinder.

Итак, все, что вам нужно сделать, это получить этот токен в фильтре действий:

public class CustomActionFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext context)
    {
        var cancellationToken = context.HttpContext.RequestAborted;
        // rest of your code
    }
}
...