Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 17 additions & 17 deletions apiCount.include.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
**API count: 825**
**API count: 833**

### Per Target Framework

| Target | APIs |
| -- | -- |
| `net461` | 789 |
| `net462` | 789 |
| `net47` | 788 |
| `net471` | 788 |
| `net472` | 784 |
| `net48` | 784 |
| `net481` | 784 |
| `netstandard2.0` | 787 |
| `netstandard2.1` | 628 |
| `netcoreapp2.0` | 710 |
| `netcoreapp2.1` | 640 |
| `netcoreapp2.2` | 640 |
| `netcoreapp3.0` | 587 |
| `netcoreapp3.1` | 586 |
| `net461` | 793 |
| `net462` | 793 |
| `net47` | 792 |
| `net471` | 792 |
| `net472` | 788 |
| `net48` | 788 |
| `net481` | 788 |
| `netstandard2.0` | 791 |
| `netstandard2.1` | 632 |
| `netcoreapp2.0` | 714 |
| `netcoreapp2.1` | 644 |
| `netcoreapp2.2` | 644 |
| `netcoreapp3.0` | 591 |
| `netcoreapp3.1` | 590 |
| `net5.0` | 470 |
| `net6.0` | 389 |
| `net7.0` | 276 |
| `net8.0` | 178 |
| `net9.0` | 120 |
| `net10.0` | 75 |
| `net11.0` | 60 |
| `uap10.0` | 776 |
| `net11.0` | 57 |
| `uap10.0` | 780 |
8 changes: 8 additions & 0 deletions api_list.include.md
Original file line number Diff line number Diff line change
Expand Up @@ -375,6 +375,10 @@
* `Task<Stream> GetStreamAsync(Uri, CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.getstreamasync?view=net-11.0#system-net-http-httpclient-getstreamasync(system-uri-system-threading-cancellationtoken))
* `Task<string> GetStringAsync(string, CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.getstringasync?view=net-11.0#system-net-http-httpclient-getstringasync(system-string-system-threading-cancellationtoken))
* `Task<string> GetStringAsync(Uri, CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.getstringasync?view=net-11.0#system-net-http-httpclient-getstringasync(system-uri-system-threading-cancellationtoken))
* `Task<HttpResponseMessage> PatchAsync(string?, HttpContent?, CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.patchasync?view=net-11.0#system-net-http-httpclient-patchasync(system-string-system-net-http-httpcontent-system-threading-cancellationtoken))
* `Task<HttpResponseMessage> PatchAsync(string?, HttpContent?)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.patchasync?view=net-11.0#system-net-http-httpclient-patchasync(system-string-system-net-http-httpcontent))
* `Task<HttpResponseMessage> PatchAsync(Uri?, HttpContent?, CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.patchasync?view=net-11.0#system-net-http-httpclient-patchasync(system-uri-system-net-http-httpcontent-system-threading-cancellationtoken))
* `Task<HttpResponseMessage> PatchAsync(Uri?, HttpContent?)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.patchasync?view=net-11.0#system-net-http-httpclient-patchasync(system-uri-system-net-http-httpcontent))
* `HttpResponseMessage Send(HttpRequestMessage, CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.send?view=net-11.0#system-net-http-httpclient-send(system-net-http-httprequestmessage-system-threading-cancellationtoken))
* `HttpResponseMessage Send(HttpRequestMessage, HttpCompletionOption, CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.send?view=net-11.0#system-net-http-httpclient-send(system-net-http-httprequestmessage-system-net-http-httpcompletionoption-system-threading-cancellationtoken))
* `HttpResponseMessage Send(HttpRequestMessage, HttpCompletionOption)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.send?view=net-11.0#system-net-http-httpclient-send(system-net-http-httprequestmessage-system-net-http-httpcompletionoption))
Expand All @@ -384,6 +388,10 @@
#### HttpContent

* `void CopyTo(Stream, System.Net.TransportContext?, CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpcontent.copyto?view=net-11.0)
* `Task CopyToAsync(Stream, CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpcontent.copytoasync?view=net-11.0#system-net-http-httpcontent-copytoasync(system-io-stream-system-threading-cancellationtoken))
* `Task CopyToAsync(Stream, System.Net.TransportContext?, CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpcontent.copytoasync?view=net-11.0#system-net-http-httpcontent-copytoasync(system-io-stream-system-net-transportcontext-system-threading-cancellationtoken))
* `Task LoadIntoBufferAsync(CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpcontent.loadintobufferasync?view=net-11.0#system-net-http-httpcontent-loadintobufferasync(system-threading-cancellationtoken))
* `Task LoadIntoBufferAsync(long, CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpcontent.loadintobufferasync?view=net-11.0#system-net-http-httpcontent-loadintobufferasync(system-int64-system-threading-cancellationtoken))
* `Task<byte[]> ReadAsByteArrayAsync(CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpcontent.readasbytearrayasync?view=net-11.0#system-net-http-httpcontent-readasbytearrayasync(system-threading-cancellationtoken))
* `Stream ReadAsStream(CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpcontent.readasstream?view=net-11.0#system-net-http-httpcontent-readasstream(system-threading-cancellationtoken))
* `Task<Stream> ReadAsStreamAsync(CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpcontent.readasstreamasync?view=net-11.0#system-net-http-httpcontent-readasstreamasync(system-threading-cancellationtoken))
Expand Down
58 changes: 29 additions & 29 deletions assemblySize.include.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,49 +4,49 @@
|----------------|----------------|---------------|-----------|-----------|--------------------|---------------------|-------------|
| netstandard2.0 | 8.0KB | 259.5KB | +251.5KB | +9.0KB | +6.0KB | +9.0KB | +13.5KB |
| netstandard2.1 | 8.5KB | 212.5KB | +204.0KB | +9.0KB | +6.5KB | +9.0KB | +14.0KB |
| net461 | 8.5KB | 266.0KB | +257.5KB | +9.0KB | +6.5KB | +9.0KB | +13.5KB |
| net462 | 7.0KB | 265.0KB | +258.0KB | +9.0KB | +6.5KB | +9.0KB | +13.5KB |
| net47 | 7.0KB | 264.5KB | +257.5KB | +9.0KB | +6.5KB | +9.0KB | +13.5KB |
| net471 | 8.5KB | 264.5KB | +256.0KB | +9.0KB | +6.5KB | +9.0KB | +13.5KB |
| net472 | 8.5KB | 263.5KB | +255.0KB | +9.0KB | +6.0KB | +9.0KB | +13.5KB |
| net48 | 8.5KB | 263.0KB | +254.5KB | +9.0KB | +6.5KB | +9.5KB | +13.5KB |
| net481 | 8.5KB | 263.5KB | +255.0KB | +9.0KB | +6.0KB | +9.0KB | +13.5KB |
| netcoreapp2.0 | 9.0KB | 239.0KB | +230.0KB | +9.5KB | +6.5KB | +9.5KB | +14.0KB |
| netcoreapp2.1 | 9.0KB | 220.5KB | +211.5KB | +9.0KB | +6.0KB | +9.0KB | +13.5KB |
| netcoreapp2.2 | 9.0KB | 220.5KB | +211.5KB | +9.0KB | +6.0KB | +9.0KB | +13.5KB |
| netcoreapp3.0 | 9.5KB | 211.0KB | +201.5KB | +9.5KB | +6.5KB | +9.5KB | +14.0KB |
| netcoreapp3.1 | 9.5KB | 209.5KB | +200.0KB | +9.0KB | +6.5KB | +9.0KB | +14.0KB |
| net461 | 8.5KB | 266.5KB | +258.0KB | +9.0KB | +6.5KB | +9.0KB | +13.5KB |
| net462 | 7.0KB | 265.5KB | +258.5KB | +9.0KB | +6.5KB | +9.0KB | +13.5KB |
| net47 | 7.0KB | 265.0KB | +258.0KB | +9.0KB | +6.5KB | +9.0KB | +13.5KB |
| net471 | 8.5KB | 265.0KB | +256.5KB | +9.0KB | +6.5KB | +9.5KB | +13.5KB |
| net472 | 8.5KB | 264.0KB | +255.5KB | +9.0KB | +6.5KB | +9.0KB | +13.5KB |
| net48 | 8.5KB | 264.0KB | +255.5KB | +9.0KB | +6.0KB | +9.0KB | +13.5KB |
| net481 | 8.5KB | 264.0KB | +255.5KB | +9.0KB | +6.5KB | +9.0KB | +13.5KB |
| netcoreapp2.0 | 9.0KB | 240.0KB | +231.0KB | +9.0KB | +6.5KB | +9.0KB | +13.5KB |
| netcoreapp2.1 | 9.0KB | 221.0KB | +212.0KB | +9.0KB | +6.5KB | +9.0KB | +14.0KB |
| netcoreapp2.2 | 9.0KB | 221.0KB | +212.0KB | +9.0KB | +6.5KB | +9.0KB | +14.0KB |
| netcoreapp3.0 | 9.5KB | 211.5KB | +202.0KB | +9.5KB | +6.5KB | +9.5KB | +14.0KB |
| netcoreapp3.1 | 9.5KB | 210.0KB | +200.5KB | +9.0KB | +6.5KB | +9.0KB | +14.0KB |
| net5.0 | 9.5KB | 173.0KB | +163.5KB | +9.0KB | +6.0KB | +9.0KB | +14.0KB |
| net6.0 | 10.0KB | 128.0KB | +118.0KB | +10.0KB | +6.5KB | +512bytes | +3.5KB |
| net7.0 | 10.0KB | 98.0KB | +88.0KB | +9.5KB | +5.5KB | +512bytes | +3.5KB |
| net8.0 | 9.5KB | 79.5KB | +70.0KB | +8.5KB | | +512bytes | +3.5KB |
| net9.0 | 9.5KB | 45.0KB | +35.5KB | +8.5KB | | +512bytes | +3.5KB |
| net10.0 | 10.0KB | 23.5KB | +13.5KB | +9.0KB | | +512bytes | +3.5KB |
| net11.0 | 10.0KB | 19.0KB | +9.0KB | +9.5KB | | +1.0KB | +4.0KB |
| net11.0 | 10.0KB | 18.0KB | +8.0KB | +9.5KB | | +1.0KB | +4.0KB |


### Assembly Sizes with EmbedUntrackedSources

| | Empty Assembly | With Polyfill | Diff | Ensure | ArgumentExceptions | StringInterpolation | Nullability |
|----------------|----------------|---------------|-----------|-----------|--------------------|---------------------|-------------|
| netstandard2.0 | 8.0KB | 383.6KB | +375.6KB | +16.7KB | +7.7KB | +13.9KB | +18.9KB |
| netstandard2.1 | 8.5KB | 311.6KB | +303.1KB | +16.7KB | +8.2KB | +13.9KB | +19.4KB |
| net461 | 8.5KB | 390.6KB | +382.1KB | +16.7KB | +8.2KB | +13.9KB | +18.9KB |
| net462 | 7.0KB | 389.6KB | +382.6KB | +16.7KB | +8.2KB | +13.9KB | +18.9KB |
| net47 | 7.0KB | 388.8KB | +381.8KB | +16.7KB | +8.2KB | +13.9KB | +18.9KB |
| net471 | 8.5KB | 388.8KB | +380.3KB | +16.7KB | +8.2KB | +13.9KB | +18.9KB |
| net472 | 8.5KB | 386.8KB | +378.3KB | +16.7KB | +7.7KB | +13.9KB | +18.9KB |
| net48 | 8.5KB | 386.3KB | +377.8KB | +16.7KB | +8.2KB | +14.4KB | +18.9KB |
| net481 | 8.5KB | 386.8KB | +378.3KB | +16.7KB | +7.7KB | +13.9KB | +18.9KB |
| netcoreapp2.0 | 9.0KB | 353.0KB | +344.0KB | +17.2KB | +8.2KB | +14.4KB | +19.4KB |
| netcoreapp2.1 | 9.0KB | 323.8KB | +314.8KB | +16.7KB | +7.7KB | +13.9KB | +18.9KB |
| netcoreapp2.2 | 9.0KB | 323.8KB | +314.8KB | +16.7KB | +7.7KB | +13.9KB | +18.9KB |
| netcoreapp3.0 | 9.5KB | 305.1KB | +295.6KB | +17.2KB | +8.2KB | +14.4KB | +19.4KB |
| netcoreapp3.1 | 9.5KB | 303.6KB | +294.1KB | +16.7KB | +8.2KB | +13.9KB | +19.4KB |
| netstandard2.0 | 8.0KB | 383.8KB | +375.8KB | +16.7KB | +7.7KB | +13.9KB | +18.9KB |
| netstandard2.1 | 8.5KB | 311.7KB | +303.2KB | +16.7KB | +8.2KB | +13.9KB | +19.4KB |
| net461 | 8.5KB | 391.2KB | +382.7KB | +16.7KB | +8.2KB | +13.9KB | +18.9KB |
| net462 | 7.0KB | 390.2KB | +383.2KB | +16.7KB | +8.2KB | +13.9KB | +18.9KB |
| net47 | 7.0KB | 389.5KB | +382.5KB | +16.7KB | +8.2KB | +13.9KB | +18.9KB |
| net471 | 8.5KB | 389.5KB | +381.0KB | +16.7KB | +8.2KB | +14.4KB | +18.9KB |
| net472 | 8.5KB | 387.4KB | +378.9KB | +16.7KB | +8.2KB | +13.9KB | +18.9KB |
| net48 | 8.5KB | 387.4KB | +378.9KB | +16.7KB | +7.7KB | +13.9KB | +18.9KB |
| net481 | 8.5KB | 387.4KB | +378.9KB | +16.7KB | +8.2KB | +13.9KB | +18.9KB |
| netcoreapp2.0 | 9.0KB | 354.1KB | +345.1KB | +16.7KB | +8.2KB | +13.9KB | +18.9KB |
| netcoreapp2.1 | 9.0KB | 324.4KB | +315.4KB | +16.7KB | +8.2KB | +13.9KB | +19.4KB |
| netcoreapp2.2 | 9.0KB | 324.4KB | +315.4KB | +16.7KB | +8.2KB | +13.9KB | +19.4KB |
| netcoreapp3.0 | 9.5KB | 305.8KB | +296.3KB | +17.2KB | +8.2KB | +14.4KB | +19.4KB |
| netcoreapp3.1 | 9.5KB | 304.2KB | +294.7KB | +16.7KB | +8.2KB | +13.9KB | +19.4KB |
| net5.0 | 9.5KB | 249.9KB | +240.4KB | +16.7KB | +7.7KB | +13.9KB | +19.4KB |
| net6.0 | 10.0KB | 188.2KB | +178.2KB | +17.7KB | +8.2KB | +1.1KB | +4.2KB |
| net7.0 | 10.0KB | 141.3KB | +131.3KB | +17.1KB | +6.9KB | +1.1KB | +4.2KB |
| net8.0 | 9.5KB | 112.8KB | +103.3KB | +16.0KB | +299bytes | +1.1KB | +4.2KB |
| net9.0 | 9.5KB | 64.6KB | +55.1KB | +16.0KB | | +1.1KB | +4.2KB |
| net10.0 | 10.0KB | 35.8KB | +25.8KB | +16.5KB | | +1.1KB | +4.2KB |
| net11.0 | 10.0KB | 28.5KB | +18.5KB | +17.0KB | | +1.6KB | +4.7KB |
| net10.0 | 10.0KB | 35.7KB | +25.7KB | +16.5KB | | +1.1KB | +4.2KB |
| net11.0 | 10.0KB | 26.9KB | +16.9KB | +17.0KB | | +1.6KB | +4.7KB |
8 changes: 8 additions & 0 deletions src/Consume/Consume.cs
Original file line number Diff line number Diff line change
Expand Up @@ -748,6 +748,10 @@ void HashSet_Methods()
#if FeatureHttp
void HttpClient_Methods(HttpClient target)
{
target.PatchAsync("", new StringContent(""));
target.PatchAsync(new Uri("http://a"), new StringContent(""));
target.PatchAsync("", new StringContent(""), CancellationToken.None);
target.PatchAsync(new Uri("http://a"), new StringContent(""), CancellationToken.None);
target.Send(new HttpRequestMessage());
target.Send(new HttpRequestMessage(), HttpCompletionOption.ResponseContentRead);
target.Send(new HttpRequestMessage(), CancellationToken.None);
Expand All @@ -765,9 +769,13 @@ void HttpContent_Methods(ByteArrayContent target)
target.ReadAsStream();
target.ReadAsStream(CancellationToken.None);
target.CopyTo(System.IO.Stream.Null, null, CancellationToken.None);
target.CopyToAsync(System.IO.Stream.Null, CancellationToken.None);
target.CopyToAsync(System.IO.Stream.Null, null, CancellationToken.None);
target.ReadAsStreamAsync(CancellationToken.None);
target.ReadAsByteArrayAsync(CancellationToken.None);
target.ReadAsStringAsync(CancellationToken.None);
target.LoadIntoBufferAsync(CancellationToken.None);
target.LoadIntoBufferAsync(1024, CancellationToken.None);
}
#endif

Expand Down
2 changes: 1 addition & 1 deletion src/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<Project>
<PropertyGroup>
<NoWarn>CS1591;NETSDK1138;NU1901;NU1902;NU1903;CA1822;CA1847;CA1861;NU1510;NU1608;NU1109</NoWarn>
<Version>9.21.0</Version>
<Version>9.22.0</Version>
<AssemblyVersion>1.0.0</AssemblyVersion>
<PackageTags>Polyfill</PackageTags>
<DisableImplicitNamespaceImports>true</DisableImplicitNamespaceImports>
Expand Down
44 changes: 44 additions & 0 deletions src/Polyfill/Polyfill_HttpClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,50 @@ namespace Polyfills;

static partial class Polyfill
{
#if !NETCOREAPP2_1_OR_GREATER && !NETSTANDARD2_1_OR_GREATER
/// <summary>
/// Sends a PATCH request to a URI designated as a string as an asynchronous operation.
/// </summary>
//Link: https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.patchasync?view=net-11.0#system-net-http-httpclient-patchasync(system-string-system-net-http-httpcontent)
public static Task<HttpResponseMessage> PatchAsync(
this HttpClient target,
string? requestUri,
HttpContent? content) =>
target.SendAsync(new HttpRequestMessage(new HttpMethod("PATCH"), requestUri) { Content = content });

/// <summary>
/// Sends a PATCH request as an asynchronous operation.
/// </summary>
//Link: https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.patchasync?view=net-11.0#system-net-http-httpclient-patchasync(system-uri-system-net-http-httpcontent)
public static Task<HttpResponseMessage> PatchAsync(
this HttpClient target,
Uri? requestUri,
HttpContent? content) =>
target.SendAsync(new HttpRequestMessage(new HttpMethod("PATCH"), requestUri) { Content = content });

/// <summary>
/// Sends a PATCH request with a cancellation token to a URI represented as a string as an asynchronous operation.
/// </summary>
//Link: https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.patchasync?view=net-11.0#system-net-http-httpclient-patchasync(system-string-system-net-http-httpcontent-system-threading-cancellationtoken)
public static Task<HttpResponseMessage> PatchAsync(
this HttpClient target,
string? requestUri,
HttpContent? content,
CancellationToken cancellationToken) =>
target.SendAsync(new HttpRequestMessage(new HttpMethod("PATCH"), requestUri) { Content = content }, cancellationToken);

/// <summary>
/// Sends a PATCH request with a cancellation token as an asynchronous operation.
/// </summary>
//Link: https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.patchasync?view=net-11.0#system-net-http-httpclient-patchasync(system-uri-system-net-http-httpcontent-system-threading-cancellationtoken)
public static Task<HttpResponseMessage> PatchAsync(
this HttpClient target,
Uri? requestUri,
HttpContent? content,
CancellationToken cancellationToken) =>
target.SendAsync(new HttpRequestMessage(new HttpMethod("PATCH"), requestUri) { Content = content }, cancellationToken);
#endif

#if !NET5_0_OR_GREATER
/// <summary>
/// Sends an HTTP request with the specified request.
Expand Down
Loading
Loading