Metalama.Community.AutoCancellationToken
2026年1月19日
Prefix Reserved
dotnet add package Metalama.Community.AutoCancellationToken --version 2026年1月19日
NuGet\Install-Package Metalama.Community.AutoCancellationToken -Version 2026年1月19日
<PackageReference Include="Metalama.Community.AutoCancellationToken" Version="2026年1月19日" />
<PackageVersion Include="Metalama.Community.AutoCancellationToken" Version="2026年1月19日" />Directory.Packages.props
<PackageReference Include="Metalama.Community.AutoCancellationToken" />Project file
paket add Metalama.Community.AutoCancellationToken --version 2026年1月19日
#r "nuget: Metalama.Community.AutoCancellationToken, 2026年1月19日"
#:package Metalama.Community.AutoCancellationToken@2026年1月19日
#addin nuget:?package=Metalama.Community.AutoCancellationToken&version=2026年1月19日Install as a Cake Addin
#tool nuget:?package=Metalama.Community.AutoCancellationToken&version=2026年1月19日Install as a Cake Tool
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年1月19日)
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月19日 | 599 | 6/27/2026 |
| 2026年1月18日 | 1,013 | 6/10/2026 |
| 2026年1月17日 | 109 | 6/5/2026 |
| 2026年1月16日 | 262 | 6/3/2026 |
| 2026年1月15日-rc | 2,007 | 5/15/2026 |
| 2026年1月14日-rc | 396 | 5/13/2026 |
| 2026年1月13日-preview | 98 | 5/13/2026 |
| 2026年1月12日-preview | 395 | 5/12/2026 |
| 2026年1月11日-preview | 538 | 5/6/2026 |
| 2026年1月10日-preview | 893 | 4/29/2026 |
| 2026年1月9日-preview | 539 | 4/17/2026 |
| 2026年1月8日-preview | 237 | 4/13/2026 |
| 2026年1月7日-preview | 683 | 3/31/2026 |
| 2026年1月6日-preview | 332 | 3/28/2026 |
| 2026年1月5日-preview | 106 | 3/26/2026 |
| 2026024 | 44 | 6/30/2026 |
| 2026023 | 92 | 6/27/2026 |
| 2026022 | 103 | 5/15/2026 |
| 2026021 | 131 | 4/17/2026 |
| 2025年1月19日 | 43 | 6/30/2026 |