Metalama.Community.AutoCancellationToken
2026.0.22
Prefix Reserved
See the version list below for details.
dotnet add package Metalama.Community.AutoCancellationToken --version 2026.0.22
NuGet\Install-Package Metalama.Community.AutoCancellationToken -Version 2026.0.22
<PackageReference Include="Metalama.Community.AutoCancellationToken" Version="2026.0.22" />
<PackageVersion Include="Metalama.Community.AutoCancellationToken" Version="2026.0.22" />
<PackageReference Include="Metalama.Community.AutoCancellationToken" />
paket add Metalama.Community.AutoCancellationToken --version 2026.0.22
#r "nuget: Metalama.Community.AutoCancellationToken, 2026.0.22"
#:package Metalama.Community.AutoCancellationToken@2026.0.22
#addin nuget:?package=Metalama.Community.AutoCancellationToken&version=2026.0.22
#tool nuget:?package=Metalama.Community.AutoCancellationToken&version=2026.0.22
Metalama.Community.AutoCancellationToken
Automatically propagates CancellationToken parameter to async methods and method calls within them.
This is a Metalama aspect. It modifies your code during compilation by using source weaving.
Example
Your code:
[AutoCancellationToken]
class C
{
async Task MakeRequests(CancellationToken ct)
{
using var client = new HttpClient();
await MakeRequest(client);
}
private static async Task MakeRequest(HttpClient client) => await client.GetAsync("https://example.org");
}
What gets compiled:
class C
{
async Task MakeRequests(CancellationToken ct)
{
using var client = new HttpClient();
await MakeRequest(client, ct);
}
private static async Task MakeRequest(HttpClient client, CancellationToken cancellationToken = default) => await client.GetAsync("https://example.org", cancellationToken);
}
Notice that CancellationToken parameter was added to the declaration of MakeRequest and that CancellationToken
argument was added to the calls of MakeRequest and HttpClient.GetAsync.
Installation
Install the NuGet package: dotnet add package Metalama.Community.AutoCancellationToken.
How to use
Add [AutoCancellationToken] to the types where you want it to apply.
By annotating a type with [AutoCancellationToken], you add cancellation to all its async methods. Specifically:
- A
CancellationTokenparameter is added to allasyncmethods that don't have it. - A
CancelltionTokenargument is added to calls withinasyncmethods where:CancellationTokencan be added as a last argument and the added argument corresponds to aCancellationTokenparameter (e.g. it's not aparams object[]parameter or a generic parameter). The added argument can result in calling a different overload of the method, or specifying a value for an optional parameter.- The call is not in a
staticlocal function. - The containing method doesn't have two or more
CancellationTokenparameters, since it wouldn't be clear which one to use.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Metalama.Framework (>= 2026.0.23)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Metalama.Community.AutoCancellationToken:
| Package | Downloads |
|---|---|
|
Shinya.Core
Shinya.Framework |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.1.15-rc | 1,166 | 5/15/2026 |
| 2026.1.14-rc | 384 | 5/13/2026 |
| 2026.1.13-preview | 90 | 5/13/2026 |
| 2026.1.12-preview | 387 | 5/12/2026 |
| 2026.1.11-preview | 530 | 5/6/2026 |
| 2026.1.10-preview | 888 | 4/29/2026 |
| 2026.1.9-preview | 530 | 4/17/2026 |
| 2026.1.8-preview | 232 | 4/13/2026 |
| 2026.1.7-preview | 673 | 3/31/2026 |
| 2026.1.6-preview | 325 | 3/28/2026 |
| 2026.1.5-preview | 102 | 3/26/2026 |
| 2026.1.4-preview | 188 | 3/22/2026 |
| 2026.1.3-preview | 441 | 3/7/2026 |
| 2026.1.2-preview | 336 | 2/11/2026 |
| 2026.0.22 | 91 | 5/15/2026 |
| 2026.0.21 | 118 | 4/17/2026 |
| 2026.0.20 | 120 | 3/25/2026 |
| 2026.0.19 | 106 | 3/24/2026 |
| 2026.0.18 | 113 | 3/21/2026 |
| 2026.0.17 | 109 | 3/12/2026 |