Пользовательское промежуточное ПО AspCore с токеном отмены

когда у меня есть пользовательский ASP core middle ware, я хочу получить токен отмены для запроса

Я попытался добавить его в подпись вызова следующим образом:

 public async Task Invoke(HttpContext context,CancellationToken token)

но как сын, как я его добавляю, он больше не называется.

что я делаю не так?

1 ответов


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

общим сценарием было бы отменить задачу, если запрос прерван, поэтому вы можете создать маркер следующим образом:

CancellationToken CancellationToken => context?.RequestAborted ?? CancellationToken.None;

а затем вызовите некоторую асинхронную службу, такую как получение данных или запрос к БД, если запрос прерывается, тогда запрос на отмену должен произойти