gpt4 book ai didi

c# - 有没有办法为所有操作创建 CancellationToken 过滤器?

转载 作者:行者123 更新时间:2023-11-30 21:27:56 28 4
gpt4 key购买 nike

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

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

[HttpGet]
public async Task<IEnumerable<string>> Get(CancellationToken token = default)
{
return await DoStuffAsync(token);
}

我希望能够做到这一点:

[HttpGet]
public async Task<IEnumerable<string>> Get()
{
return await DoStuffAsync(_contextManager.Token);
}

_contextManager 从操作中提取 CancellationToken。这是否可以通过自定义 IActionFilter 或其他方式实现?

最佳答案

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

[HttpGet]
public async Task<IEnumerable<string>> Get()
{
return await DoStuffAsync(HttpContext.RequestAborted);
}

关于c# - 有没有办法为所有操作创建 CancellationToken 过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57005626/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com