Metalama.Community.AutoCancellationToken
2024.2.12-preview
Prefix Reserved
See the version list below for details.
dotnet add package Metalama.Community.AutoCancellationToken --version 2024.2.12-preview
NuGet\Install-Package Metalama.Community.AutoCancellationToken -Version 2024.2.12-preview
<PackageReference Include="Metalama.Community.AutoCancellationToken" Version="2024.2.12-preview" />
paket add Metalama.Community.AutoCancellationToken --version 2024.2.12-preview
#r "nuget: Metalama.Community.AutoCancellationToken, 2024.2.12-preview"
// Install Metalama.Community.AutoCancellationToken as a Cake Addin #addin nuget:?package=Metalama.Community.AutoCancellationToken&version=2024.2.12-preview&prerelease // Install Metalama.Community.AutoCancellationToken as a Cake Tool #tool nuget:?package=Metalama.Community.AutoCancellationToken&version=2024.2.12-preview&prerelease
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
CancellationToken
parameter is added to allasync
methods that don't have it. - A
CancelltionToken
argument is added to calls withinasync
methods where:CancellationToken
can be added as a last argument and the added argument corresponds to aCancellationToken
parameter (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
static
local function. - The containing method doesn't have two or more
CancellationToken
parameters, 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. |
.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 (>= 2024.2.12-preview)
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 |
---|---|---|
2025.0.7-rc | 147 | 12/6/2024 |
2025.0.6-rc | 197 | 11/15/2024 |
2025.0.5-preview | 95 | 11/8/2024 |
2025.0.3-preview | 80 | 10/25/2024 |
2025.0.2-preview | 67 | 10/24/2024 |
2025.0.1-preview | 64 | 10/14/2024 |
2024.2.31 | 81 | 12/6/2024 |
2024.2.30 | 87 | 11/15/2024 |
2024.2.29 | 83 | 10/31/2024 |
2024.2.27 | 80 | 10/25/2024 |
2024.2.26 | 69 | 10/24/2024 |
2024.2.25 | 124 | 10/14/2024 |
2024.2.24 | 99 | 10/2/2024 |
2024.2.23 | 128 | 9/10/2024 |
2024.2.22 | 104 | 8/29/2024 |
2024.2.21 | 107 | 8/28/2024 |
2024.2.20 | 127 | 8/15/2024 |
2024.2.19 | 1,322 | 8/1/2024 |
2024.2.18 | 83 | 7/29/2024 |
2024.2.17-rc | 96 | 7/22/2024 |
2024.2.16-rc | 81 | 7/18/2024 |
2024.2.15-rc | 67 | 7/12/2024 |
2024.2.14-rc | 2,506 | 7/8/2024 |
2024.2.13-rc | 87 | 7/2/2024 |
2024.2.12-preview | 82 | 6/28/2024 |
2024.2.11-preview | 80 | 6/26/2024 |
2024.2.10-preview | 98 | 6/20/2024 |
2024.2.9-preview | 82 | 6/11/2024 |
2024.2.8-preview | 81 | 6/6/2024 |
2024.2.7-preview | 101 | 5/30/2024 |
2024.2.6-preview | 99 | 5/25/2024 |
2024.2.5-preview | 107 | 5/6/2024 |
2024.2.4-preview | 111 | 5/4/2024 |
2024.2.3-preview | 102 | 4/30/2024 |
2024.2.2-preview | 96 | 4/23/2024 |
2024.2.1-preview | 88 | 4/11/2024 |
2024.1.30 | 73 | 10/24/2024 |
2024.1.29 | 91 | 10/11/2024 |
2024.1.28 | 113 | 9/9/2024 |
2024.1.27 | 93 | 8/28/2024 |
2024.1.26 | 101 | 8/15/2024 |
2024.1.25 | 106 | 7/22/2024 |
2024.1.24 | 80 | 7/12/2024 |
2024.1.23 | 2,663 | 6/26/2024 |
2024.1.22 | 91 | 6/15/2024 |
2024.1.21 | 107 | 6/6/2024 |
2024.1.20 | 109 | 5/30/2024 |
2024.1.19 | 110 | 5/24/2024 |
2024.1.18 | 147 | 5/6/2024 |
2024.1.17 | 80 | 5/3/2024 |
2024.1.16 | 120 | 4/30/2024 |
2024.1.15 | 105 | 4/29/2024 |
2024.1.14 | 108 | 4/23/2024 |
2024.1.13 | 121 | 4/23/2024 |
2024.1.12 | 137 | 4/17/2024 |
2024.1.11-rc | 96 | 4/11/2024 |
2024.1.10-rc | 119 | 4/4/2024 |
2024.1.9-rc | 100 | 3/27/2024 |
2024.1.8-preview | 90 | 3/25/2024 |
2024.1.7-preview | 99 | 3/19/2024 |
2024.1.6-preview | 97 | 3/6/2024 |
2024.1.5-preview | 101 | 2/29/2024 |
2024.1.4-preview | 101 | 2/27/2024 |
2024.1.3-preview | 99 | 2/23/2024 |
2024.1.2-preview | 135 | 2/7/2024 |
2024.1.1-preview | 112 | 1/30/2024 |
2024.0.16 | 101 | 6/15/2024 |
2024.0.15 | 112 | 6/6/2024 |
2024.0.14 | 103 | 5/30/2024 |
2024.0.13 | 102 | 5/24/2024 |
2024.0.12 | 124 | 4/17/2024 |
2024.0.11 | 128 | 3/21/2024 |
2024.0.10 | 106 | 3/19/2024 |
2024.0.9 | 144 | 2/29/2024 |
2024.0.8 | 162 | 2/23/2024 |
2024.0.7 | 161 | 2/7/2024 |
2024.0.6 | 213 | 1/3/2024 |
2024.0.5-rc | 125 | 12/21/2023 |
2024.0.4-rc | 146 | 12/12/2023 |
2024.0.3-preview | 145 | 12/6/2023 |
2024.0.2-preview | 151 | 11/14/2023 |
2024.0.1-preview | 129 | 11/6/2023 |
2023.4.9 | 114 | 2/7/2024 |
2023.4.8 | 143 | 12/21/2023 |
2023.4.7 | 165 | 12/12/2023 |
2023.4.6 | 183 | 11/7/2023 |
2023.4.5-rc | 141 | 10/26/2023 |
2023.4.4-preview | 141 | 10/18/2023 |
2023.4.3-preview | 137 | 10/4/2023 |
2023.4.2-preview | 133 | 9/26/2023 |
2023.4.1-preview | 134 | 9/13/2023 |
2023.3.10 | 124 | 12/21/2023 |
2023.3.9 | 152 | 12/12/2023 |
2023.3.8 | 161 | 10/17/2023 |
2023.3.7-rc | 145 | 9/29/2023 |
2023.3.6-rc | 152 | 9/26/2023 |
2023.3.5-rc | 151 | 9/13/2023 |
2023.3.4-preview | 160 | 8/30/2023 |
2023.3.3-preview | 163 | 8/29/2023 |
2023.3.2-preview | 380 | 8/1/2023 |
2023.3.1-preview | 278 | 7/28/2023 |
2023.2.5 | 373 | 9/12/2023 |
2023.2.4 | 337 | 8/7/2023 |
2023.2.3-rc | 314 | 8/3/2023 |
2023.2.2-rc | 319 | 7/21/2023 |
2023.2.1-preview | 354 | 6/27/2023 |
2023.1.7 | 339 | 9/12/2023 |
2023.1.6 | 362 | 8/7/2023 |
2023.1.5 | 197 | 7/17/2023 |
2023.1.4 | 224 | 6/27/2023 |