CancellationToken 在 ASP.NET Core ActionFilter 中是否可用?

Dmi*_*gin 4 c# action-filter asp.net-core

我可以注入CancellationTokenASP.NET核心作用的方法,但我不希望再使用动作过滤器与它合作。如何在实施时访问取消令牌 IAsyncActionFilter?我的方法不应该把它作为参数。

vas*_*sib 6

您已经发布一个非常好的文章的链接,其中包含一个小提示,您可以在其中获取此令牌。

MVC将自动绑定任何CancellationToken在操作方法的参数HttpContext.RequestAborted令牌使用CancellationTokenModelBinder

因此,您所要做的就是在操作过滤器中获取该令牌:

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