Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否有方法为所有操作的CancellationToken创建筛选器?_C#_Asp.net Core_Asp.net Core Webapi - Fatal编程技术网

C# 是否有方法为所有操作的CancellationToken创建筛选器?

C# 是否有方法为所有操作的CancellationToken创建筛选器?,c#,asp.net-core,asp.net-core-webapi,C#,Asp.net Core,Asp.net Core Webapi,我想创建一个ASP.NET核心WebApi服务,其中每个操作都支持CancellationToken,而无需使用参数显式实现它 我不想对每一个动作都这样做: [HttpGet] 公共异步任务获取(CancellationToken=默认值) { 返回等待DoStuffAsync(令牌); } 我希望能够做到这一点: [HttpGet] 公共异步任务Get() { 返回wait wait DoStuffAsync(_contextManager.Token); } 其中\u contextMa

我想创建一个ASP.NET核心WebApi服务,其中每个操作都支持CancellationToken,而无需使用参数显式实现它

我不想对每一个动作都这样做:

[HttpGet]
公共异步任务获取(CancellationToken=默认值)
{
返回等待DoStuffAsync(令牌);
}
我希望能够做到这一点:

[HttpGet]
公共异步任务Get()
{
返回wait wait DoStuffAsync(_contextManager.Token);
}
其中
\u contextManager
从操作中提取CancellationToken。
通过自定义的
IActionFilter
或其他方式可以实现这一点吗?

传递到操作中的
CancellationToken
是使用绑定的,它使用
HttpContext.RequestAborted
作为值。您可以自己直接使用,如下所示:

[HttpGet]
public async Task<IEnumerable<string>> Get()
{
    return await DoStuffAsync(HttpContext.RequestAborted);
}
[HttpGet]
公共异步任务Get()
{
返回wait wait DoStuffAsync(HttpContext.RequestAborted);
}