From d9ad417793b6155f91cd924e2b13febc6c23673c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 11 Aug 2026 19:54:18 +0000 Subject: [PATCH 1/4] API diff 11.0-preview.7 -> 11.0-rc.1 --- .../Microsoft.AspNetCore.App/11.0-rc1.md | 7 ++ ...crosoft.AspNetCore.Components.Endpoints.md | 59 +++++++++++++++ ...1.0-rc1_Microsoft.AspNetCore.Components.md | 12 ++++ .../Microsoft.NETCore.App/11.0-rc1.md | 10 +++ .../11.0-rc1_System.Collections.md | 13 ++++ .../11.0-rc1_System.Diagnostics.Process.md | 14 ++++ .../11.0-rc1_System.IO.Compression.md | 31 ++++++++ .../11.0-rc1_System.Net.Security.md | 71 +++++++++++++++++++ .../11.0-rc1_System.Text.Json.md | 21 ++++++ .../Microsoft.WindowsDesktop.App/11.0-rc1.md | 6 ++ .../11.0-rc1_System.Windows.Forms.md | 12 ++++ .../11.0/preview/rc1/api-diff/README.md | 7 ++ 12 files changed, 263 insertions(+) create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1.md create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.Endpoints.md create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.md create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1.md create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Collections.md create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Diagnostics.Process.md create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.IO.Compression.md create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Net.Security.md create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Text.Json.md create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.WindowsDesktop.App/11.0-rc1.md create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.WindowsDesktop.App/11.0-rc1_System.Windows.Forms.md create mode 100644 release-notes/11.0/preview/rc1/api-diff/README.md diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1.md new file mode 100644 index 0000000000..3ba3d2d7c5 --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1.md @@ -0,0 +1,7 @@ +# API difference between .NET 11.0 Preview 7 and .NET 11.0 RC 1 + +API listing follows standard diff formatting. +Lines preceded by a '+' are additions and a '-' indicates removal. + +* [Microsoft.AspNetCore.Components](11.0-rc1_Microsoft.AspNetCore.Components.md) +* [Microsoft.AspNetCore.Components.Endpoints](11.0-rc1_Microsoft.AspNetCore.Components.Endpoints.md) diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.Endpoints.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.Endpoints.md new file mode 100644 index 0000000000..524d664c4f --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.Endpoints.md @@ -0,0 +1,59 @@ +# Microsoft.AspNetCore.Components.Endpoints + +```diff + namespace Microsoft.AspNetCore.Components + { + public sealed class BrowserOptions + { +- public Microsoft.AspNetCore.Components.InteractiveServerBrowserOptions Server { get; } +- public Microsoft.AspNetCore.Components.SsrBrowserOptions Ssr { get; } +- public Microsoft.AspNetCore.Components.WebAssemblyBrowserOptions WebAssembly { get; } ++ public static Microsoft.AspNetCore.Components.BrowserOptions GetBrowserOptions(Microsoft.AspNetCore.Http.HttpContext context); ++ [System.Text.Json.Serialization.JsonPropertyNameAttribute("server")] ++ public Microsoft.AspNetCore.Components.InteractiveServerBrowserOptions InteractiveServer { get; } ++ [System.Text.Json.Serialization.JsonPropertyNameAttribute("webAssembly")] ++ public Microsoft.AspNetCore.Components.InteractiveWebAssemblyBrowserOptions InteractiveWebAssembly { get; } ++ [System.Text.Json.Serialization.JsonPropertyNameAttribute("ssr")] ++ public Microsoft.AspNetCore.Components.StaticServerBrowserOptions StaticServer { get; } + } +- public static class BrowserOptionsHttpContextExtensions +- { +- public static Microsoft.AspNetCore.Components.BrowserOptions GetBrowserOptions(this Microsoft.AspNetCore.Http.HttpContext context); +- } + public sealed class ConfigureBrowser : Microsoft.AspNetCore.Components.IComponent + { +- [Microsoft.AspNetCore.Components.CascadingParameterAttribute] +- public Microsoft.AspNetCore.Http.HttpContext? HttpContext { get; set; } + } +- public sealed class SsrBrowserOptions +- { +- public SsrBrowserOptions(); +- [System.Text.Json.Serialization.JsonPropertyNameAttribute("circuitInactivityTimeoutMs")] +- public System.TimeSpan? CircuitInactivityTimeout { get; set; } +- [System.Text.Json.Serialization.JsonPropertyNameAttribute("disableDomPreservation")] +- public bool? PreserveDom { get; set; } +- } +- public sealed class WebAssemblyBrowserOptions +- { +- public WebAssemblyBrowserOptions(); +- public string? ApplicationCulture { get; set; } +- public string? EnvironmentName { get; set; } +- public System.Collections.Generic.IDictionary EnvironmentVariables { get; } +- } ++ public sealed class InteractiveWebAssemblyBrowserOptions ++ { ++ public InteractiveWebAssemblyBrowserOptions(); ++ public string? ApplicationCulture { get; set; } ++ public string? EnvironmentName { get; set; } ++ public System.Collections.Generic.IDictionary EnvironmentVariables { get; } ++ } ++ public sealed class StaticServerBrowserOptions ++ { ++ public StaticServerBrowserOptions(); ++ [System.Text.Json.Serialization.JsonPropertyNameAttribute("circuitInactivityTimeoutMs")] ++ public System.TimeSpan? CircuitInactivityTimeout { get; set; } ++ [System.Text.Json.Serialization.JsonPropertyNameAttribute("disableDomPreservation")] ++ public bool? PreserveDom { get; set; } ++ } + } +``` diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.md new file mode 100644 index 0000000000..99090a7b46 --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.md @@ -0,0 +1,12 @@ +# Microsoft.AspNetCore.Components + +```diff + namespace Microsoft.AspNetCore.Components.Rendering + { + public sealed class RenderTreeBuilder : System.IDisposable + { ++ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0032", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")] + public void SetAttributeValue(int frameIndex, object? value); + } + } +``` diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1.md new file mode 100644 index 0000000000..ba4a695be4 --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1.md @@ -0,0 +1,10 @@ +# API difference between .NET 11.0 Preview 7 and .NET 11.0 RC 1 + +API listing follows standard diff formatting. +Lines preceded by a '+' are additions and a '-' indicates removal. + +* [System.Collections](11.0-rc1_System.Collections.md) +* [System.Diagnostics.Process](11.0-rc1_System.Diagnostics.Process.md) +* [System.IO.Compression](11.0-rc1_System.IO.Compression.md) +* [System.Net.Security](11.0-rc1_System.Net.Security.md) +* [System.Text.Json](11.0-rc1_System.Text.Json.md) diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Collections.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Collections.md new file mode 100644 index 0000000000..891c24dc1c --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Collections.md @@ -0,0 +1,13 @@ +# System.Collections + +```diff + namespace System.Collections + { + public sealed class BitArray : System.Collections.ICollection, System.Collections.IEnumerable, System.ICloneable + { ++ public BitArray(System.ReadOnlySpan values); ++ public BitArray(System.ReadOnlySpan bytes); ++ public BitArray(System.ReadOnlySpan values); + } + } +``` diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Diagnostics.Process.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Diagnostics.Process.md new file mode 100644 index 0000000000..696a91e393 --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Diagnostics.Process.md @@ -0,0 +1,14 @@ +# System.Diagnostics.Process + +```diff + namespace System.Diagnostics + { + public class Process : System.ComponentModel.Component, System.IDisposable + { ++ public bool Signal(System.Runtime.InteropServices.PosixSignal signal); ++ public bool TryWaitForExitStatus(System.TimeSpan timeout, out System.Diagnostics.ProcessExitStatus? exitStatus); ++ public System.Diagnostics.ProcessExitStatus WaitForExitStatus(); ++ public System.Threading.Tasks.Task WaitForExitStatusAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + } + } +``` diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.IO.Compression.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.IO.Compression.md new file mode 100644 index 0000000000..69127644f9 --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.IO.Compression.md @@ -0,0 +1,31 @@ +# System.IO.Compression + +```diff + namespace System.IO.Compression + { + public sealed class DeflateDecoder : System.IDisposable + { ++ public void Reset(); + } + public sealed class DeflateEncoder : System.IDisposable + { ++ public void Reset(); + } + public sealed class GZipDecoder : System.IDisposable + { ++ public void Reset(); + } + public sealed class GZipEncoder : System.IDisposable + { ++ public void Reset(); + } + public sealed class ZLibDecoder : System.IDisposable + { ++ public void Reset(); + } + public sealed class ZLibEncoder : System.IDisposable + { ++ public void Reset(); + } + } +``` diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Net.Security.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Net.Security.md new file mode 100644 index 0000000000..1644de2409 --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Net.Security.md @@ -0,0 +1,71 @@ +# System.Net.Security + +```diff + namespace System.Net.Security + { ++ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("SYSLIB5007", UrlFormat = "https://aka.ms/dotnet-warnings/{0}")] ++ public sealed class TlsBufferSession : System.Net.Security.TlsSession ++ { ++ public TlsBufferSession(); ++ public System.Net.Security.TlsOperationStatus DrainPendingOutput(System.Span destination, out int bytesWritten); ++ public System.Net.Security.TlsOperationStatus Handshake(System.ReadOnlySpan source, System.Span destination, out int bytesConsumed, out int bytesWritten); ++ public System.Net.Security.TlsOperationStatus Read(System.ReadOnlySpan source, System.Span destination, out int bytesConsumed, out int bytesWritten); ++ public System.Net.Security.TlsOperationStatus RequestClientCertificate(System.Span destination, out int bytesWritten); ++ public System.Net.Security.TlsOperationStatus Shutdown(System.Span destination, out int bytesWritten); ++ public System.Net.Security.TlsOperationStatus Write(System.ReadOnlySpan source, System.Span destination, out int bytesConsumed, out int bytesWritten); ++ } ++ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("SYSLIB5007", UrlFormat = "https://aka.ms/dotnet-warnings/{0}")] ++ public sealed class TlsContext : System.IDisposable ++ { ++ public static System.Net.Security.TlsContext CreateClient(System.Net.Security.SslClientAuthenticationOptions options); ++ public static System.Net.Security.TlsContext CreateServer(System.Net.Security.SslServerAuthenticationOptions options); ++ public void Dispose(); ++ } ++ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("SYSLIB5007", UrlFormat = "https://aka.ms/dotnet-warnings/{0}")] ++ public enum TlsOperationStatus ++ { ++ Complete = 0, ++ DestinationTooSmall = 1, ++ NeedMoreData = 2, ++ Closed = 3, ++ CertificateRequested = 4, ++ NeedsCertificateValidation = 5, ++ NeedsTlsContext = 6, ++ } ++ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("SYSLIB5007", UrlFormat = "https://aka.ms/dotnet-warnings/{0}")] ++ public abstract class TlsSession : System.IDisposable ++ { ++ public System.Net.Security.SslPolicyErrors AcceptWithDefaultValidation(); ++ public void Dispose(); ++ public System.Collections.Generic.IReadOnlyList? GetAcceptableIssuers(); ++ public System.Security.Authentication.ExtendedProtection.ChannelBinding? GetChannelBinding(System.Security.Authentication.ExtendedProtection.ChannelBindingKind kind); ++ public int GetClientHelloLength(); ++ public System.Security.Cryptography.X509Certificates.X509Certificate2? GetRemoteCertificate(); ++ public System.Security.Cryptography.X509Certificates.X509Certificate2Collection? GetRemoteCertificates(); ++ public void SetClientCertificateContext(System.Net.Security.SslStreamCertificateContext? context); ++ public void SetContext(System.Net.Security.TlsContext context); ++ public void SetRemoteCertificateValidationResult(System.Net.Security.SslPolicyErrors errors); ++ public bool TryGetClientHelloBytes(System.Span destination, out int bytesWritten); ++ public System.Net.Security.SslClientHelloInfo? ClientHelloInfo { get; } ++ public bool HasPendingOutput { get; } ++ public bool IsHandshakeComplete { get; } ++ public System.Security.Cryptography.X509Certificates.X509Certificate2? LocalCertificate { get; } ++ public System.Net.Security.SslApplicationProtocol NegotiatedApplicationProtocol { get; } ++ [System.CLSCompliantAttribute(false)] ++ public System.Net.Security.TlsCipherSuite NegotiatedCipherSuite { get; } ++ public System.Security.Authentication.SslProtocols NegotiatedProtocol { get; } ++ public string? TargetHostName { get; set; } ++ } ++ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("SYSLIB5007", UrlFormat = "https://aka.ms/dotnet-warnings/{0}")] ++ public sealed class TlsSocketSession : System.Net.Security.TlsSession ++ { ++ public TlsSocketSession(System.Net.Sockets.SafeSocketHandle socket); ++ public System.Net.Security.TlsOperationStatus Handshake(); ++ public System.Net.Security.TlsOperationStatus Read(System.Span buffer, out int bytesRead); ++ public System.Net.Security.TlsOperationStatus RequestClientCertificate(); ++ public System.Net.Security.TlsOperationStatus Shutdown(); ++ public System.Net.Security.TlsOperationStatus Write(System.ReadOnlySpan buffer, out int bytesWritten); ++ public System.Net.Sockets.SafeSocketHandle Socket { get; } ++ } + } +``` diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Text.Json.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Text.Json.md new file mode 100644 index 0000000000..90dbd8c4f2 --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Text.Json.md @@ -0,0 +1,21 @@ +# System.Text.Json + +```diff + namespace System.Text.Json.Serialization + { + public sealed class JsonPolymorphicAttribute : System.Text.Json.Serialization.JsonAttribute + { ++ public bool InferClosedTypePolymorphism { get; set; } + } + } + namespace System.Text.Json.Serialization.Metadata + { + public static class JsonMetadataServices + { ++ public static System.Text.Json.Serialization.JsonConverter BFloat16Converter { get; } ++ public static System.Text.Json.Serialization.JsonConverter Decimal128Converter { get; } ++ public static System.Text.Json.Serialization.JsonConverter Decimal32Converter { get; } ++ public static System.Text.Json.Serialization.JsonConverter Decimal64Converter { get; } + } + } +``` diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.WindowsDesktop.App/11.0-rc1.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.WindowsDesktop.App/11.0-rc1.md new file mode 100644 index 0000000000..4bedc9c14a --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.WindowsDesktop.App/11.0-rc1.md @@ -0,0 +1,6 @@ +# API difference between .NET 11.0 Preview 7 and .NET 11.0 RC 1 + +API listing follows standard diff formatting. +Lines preceded by a '+' are additions and a '-' indicates removal. + +* [System.Windows.Forms](11.0-rc1_System.Windows.Forms.md) diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.WindowsDesktop.App/11.0-rc1_System.Windows.Forms.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.WindowsDesktop.App/11.0-rc1_System.Windows.Forms.md new file mode 100644 index 0000000000..d00fda403a --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.WindowsDesktop.App/11.0-rc1_System.Windows.Forms.md @@ -0,0 +1,12 @@ +# System.Windows.Forms + +```diff + namespace System.Windows.Forms + { + public class PropertyGrid : System.Windows.Forms.ContainerControl, System.Windows.Forms.ComponentModel.Com2Interop.IComPropertyBrowser + { ++ [System.ComponentModel.BrowsableAttribute(false)] ++ public event System.EventHandler? VisualStylesModeChanged { add; remove; } + } + } +``` diff --git a/release-notes/11.0/preview/rc1/api-diff/README.md b/release-notes/11.0/preview/rc1/api-diff/README.md new file mode 100644 index 0000000000..99c9b330b6 --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/README.md @@ -0,0 +1,7 @@ +# .NET 11.0 RC 1 API Changes + +The following API changes were made in .NET 11.0 RC 1: + +- [Microsoft.NETCore.App](./Microsoft.NETCore.App/11.0-rc1.md) +- [Microsoft.AspNetCore.App](./Microsoft.AspNetCore.App/11.0-rc1.md) +- [Microsoft.WindowsDesktop.App](./Microsoft.WindowsDesktop.App/11.0-rc1.md) From 2d149779feb1dff72ee5a28ec3868251025c9041 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 12 Aug 2026 14:08:19 +0000 Subject: [PATCH 2/4] API diff 11.0-preview.7 -> 11.0-rc.1 --- .../Microsoft.AspNetCore.App/11.0-rc1.md | 1 + ...rc1_Microsoft.AspNetCore.Components.Web.md | 19 +++++++++++++++++++ ...1.0-rc1_Microsoft.AspNetCore.Components.md | 13 +++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.Web.md diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1.md index 3ba3d2d7c5..f9a1bf1d78 100644 --- a/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1.md +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1.md @@ -5,3 +5,4 @@ Lines preceded by a '+' are additions and a '-' indicates removal. * [Microsoft.AspNetCore.Components](11.0-rc1_Microsoft.AspNetCore.Components.md) * [Microsoft.AspNetCore.Components.Endpoints](11.0-rc1_Microsoft.AspNetCore.Components.Endpoints.md) +* [Microsoft.AspNetCore.Components.Web](11.0-rc1_Microsoft.AspNetCore.Components.Web.md) diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.Web.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.Web.md new file mode 100644 index 0000000000..6a92c7a1ca --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.Web.md @@ -0,0 +1,19 @@ +# Microsoft.AspNetCore.Components.Web + +```diff + namespace Microsoft.AspNetCore.Components.Web + { ++ [Microsoft.AspNetCore.Components.AcceptsAssetPathAttribute("audio", "src")] ++ [Microsoft.AspNetCore.Components.AcceptsAssetPathAttribute("img", "src")] ++ [Microsoft.AspNetCore.Components.AcceptsAssetPathAttribute("input", "src")] ++ [Microsoft.AspNetCore.Components.AcceptsAssetPathAttribute("link", "href")] ++ [Microsoft.AspNetCore.Components.AcceptsAssetPathAttribute("script", "src")] ++ [Microsoft.AspNetCore.Components.AcceptsAssetPathAttribute("source", "src")] ++ [Microsoft.AspNetCore.Components.AcceptsAssetPathAttribute("track", "src")] ++ [Microsoft.AspNetCore.Components.AcceptsAssetPathAttribute("video", "poster")] ++ [Microsoft.AspNetCore.Components.AcceptsAssetPathAttribute("video", "src")] ++ public static class AssetPathAttributes ++ { ++ } + } +``` diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.md index 99090a7b46..799836b1c3 100644 --- a/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.md +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.md @@ -1,6 +1,19 @@ # Microsoft.AspNetCore.Components ```diff + namespace Microsoft.AspNetCore.Components + { ++ public sealed class AcceptsAssetPathAttribute : System.Attribute ++ { ++ public AcceptsAssetPathAttribute(string elementName, string attributeName); ++ public string AttributeName { get; } ++ public string ElementName { get; } ++ } ++ public sealed class AssetPathAttribute : System.Attribute ++ { ++ public AssetPathAttribute(); ++ } + } namespace Microsoft.AspNetCore.Components.Rendering { public sealed class RenderTreeBuilder : System.IDisposable From 14cf6a7559a5be81a9a6b0b48685f4fa0ad3ae90 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 20 Aug 2026 13:55:01 +0000 Subject: [PATCH 3/4] API diff 11.0-preview.7 -> 11.0-rc.1 --- .../Microsoft.AspNetCore.App/11.0-rc1.md | 5 +++ ..._Microsoft.AspNetCore.Components.Server.md | 12 ++++++ ...oft.AspNetCore.Connections.Abstractions.md | 11 +++++ ...1_Microsoft.AspNetCore.Http.Connections.md | 12 ++++++ ...icrosoft.AspNetCore.Server.Kestrel.Core.md | 28 ++++++++++++ ...1.0-rc1_Microsoft.Extensions.Validation.md | 18 ++++++++ .../Microsoft.NETCore.App/11.0-rc1.md | 2 + .../11.0-rc1_Microsoft.Extensions.Options.md | 35 +++++++++++++++ .../11.0-rc1_System.Net.NetworkInformation.md | 11 +++++ .../11.0-rc1_System.Text.Json.md | 6 +++ .../11.0-rc1_System.Windows.Forms.md | 43 +++++++++++++++++++ 11 files changed, 183 insertions(+) create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.Server.md create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Connections.Abstractions.md create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Http.Connections.md create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Server.Kestrel.Core.md create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.Extensions.Validation.md create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_Microsoft.Extensions.Options.md create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Net.NetworkInformation.md diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1.md index f9a1bf1d78..d410fe8e42 100644 --- a/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1.md +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1.md @@ -5,4 +5,9 @@ Lines preceded by a '+' are additions and a '-' indicates removal. * [Microsoft.AspNetCore.Components](11.0-rc1_Microsoft.AspNetCore.Components.md) * [Microsoft.AspNetCore.Components.Endpoints](11.0-rc1_Microsoft.AspNetCore.Components.Endpoints.md) +* [Microsoft.AspNetCore.Components.Server](11.0-rc1_Microsoft.AspNetCore.Components.Server.md) * [Microsoft.AspNetCore.Components.Web](11.0-rc1_Microsoft.AspNetCore.Components.Web.md) +* [Microsoft.AspNetCore.Connections.Abstractions](11.0-rc1_Microsoft.AspNetCore.Connections.Abstractions.md) +* [Microsoft.AspNetCore.Http.Connections](11.0-rc1_Microsoft.AspNetCore.Http.Connections.md) +* [Microsoft.AspNetCore.Server.Kestrel.Core](11.0-rc1_Microsoft.AspNetCore.Server.Kestrel.Core.md) +* [Microsoft.Extensions.Validation](11.0-rc1_Microsoft.Extensions.Validation.md) diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.Server.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.Server.md new file mode 100644 index 0000000000..644904b664 --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Components.Server.md @@ -0,0 +1,12 @@ +# Microsoft.AspNetCore.Components.Server + +```diff + namespace Microsoft.AspNetCore.Components.Server + { + public sealed class CircuitOptions + { ++ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASPNETCORE9004", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")] ++ public System.Collections.Generic.IList JsonTypeInfoResolvers { get; } + } + } +``` diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Connections.Abstractions.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Connections.Abstractions.md new file mode 100644 index 0000000000..5b375854c7 --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Connections.Abstractions.md @@ -0,0 +1,11 @@ +# Microsoft.AspNetCore.Connections.Abstractions + +```diff + namespace Microsoft.AspNetCore.Connections.Features + { + public interface IConnectionUserRefreshFeature + { ++ System.Func? OnUserRefreshing { get; set; } + } + } +``` diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Http.Connections.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Http.Connections.md new file mode 100644 index 0000000000..2b89b86910 --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Http.Connections.md @@ -0,0 +1,12 @@ +# Microsoft.AspNetCore.Http.Connections + +```diff + namespace Microsoft.AspNetCore.Http.Connections + { + public class HttpConnectionDispatcherOptions + { +- public System.Func>? OnAuthenticationRefresh { get; set; } ++ public System.Func>? OnAuthenticationRefresh { get; set; } + } + } +``` diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Server.Kestrel.Core.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Server.Kestrel.Core.md new file mode 100644 index 0000000000..974d1166ba --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.AspNetCore.Server.Kestrel.Core.md @@ -0,0 +1,28 @@ +# Microsoft.AspNetCore.Server.Kestrel.Core + +```diff ++ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.DirectTls ++ { ++ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASPNETCORE_DIRECTTLS_001", UrlFormat = "https://aka.ms/aspnetcore/directtls")] ++ public sealed class DirectTlsEndpoint : System.Net.IPEndPoint ++ { ++ public DirectTlsEndpoint(System.Net.IPAddress address, int port, Microsoft.AspNetCore.Server.Kestrel.Transport.DirectTls.DirectTlsEndpointOptions options) : base(default(long), default(int)); ++ public DirectTlsEndpoint(System.Net.IPAddress address, int port) : base(default(long), default(int)); ++ public DirectTlsEndpoint(System.Net.IPEndPoint endpoint, Microsoft.AspNetCore.Server.Kestrel.Transport.DirectTls.DirectTlsEndpointOptions options) : base(default(long), default(int)); ++ public Microsoft.AspNetCore.Server.Kestrel.Transport.DirectTls.DirectTlsEndpointOptions Options { get; } ++ } ++ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASPNETCORE_DIRECTTLS_001", UrlFormat = "https://aka.ms/aspnetcore/directtls")] ++ public sealed class DirectTlsEndpointOptions ++ { ++ public DirectTlsEndpointOptions(); ++ public Microsoft.AspNetCore.Server.Kestrel.Https.ClientCertificateMode ClientCertificateMode { get; set; } ++ public System.Func? ClientCertificateValidation { get; set; } ++ public System.TimeSpan HandshakeTimeout { get; set; } ++ public System.Security.Cryptography.X509Certificates.X509Certificate2? ServerCertificate { get; set; } ++ public System.Func? ServerCertificateSelector { get; set; } ++ public System.Security.Authentication.SslProtocols SslProtocols { get; set; } ++ public System.Action>? TlsClientHelloBytesCallback { get; set; } ++ public int? WorkerCount { get; set; } ++ } ++ } +``` diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.Extensions.Validation.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.Extensions.Validation.md new file mode 100644 index 0000000000..a9accdd286 --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.AspNetCore.App/11.0-rc1_Microsoft.Extensions.Validation.md @@ -0,0 +1,18 @@ +# Microsoft.Extensions.Validation + +```diff + namespace Microsoft.Extensions.Validation + { +- public sealed class ValidationMessageKeyContext +- { +- public ValidationMessageKeyContext(); +- public required System.Type DeclaringType { get; init; } +- public required string MemberName { get; init; } +- public required System.Type ValidatorType { get; init; } +- } + public class ValidationOptions + { +- public System.Func? MessageKeyProvider { get; set; } + } + } +``` diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1.md index ba4a695be4..eb3f81c9c1 100644 --- a/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1.md +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1.md @@ -3,8 +3,10 @@ API listing follows standard diff formatting. Lines preceded by a '+' are additions and a '-' indicates removal. +* [Microsoft.Extensions.Options](11.0-rc1_Microsoft.Extensions.Options.md) * [System.Collections](11.0-rc1_System.Collections.md) * [System.Diagnostics.Process](11.0-rc1_System.Diagnostics.Process.md) * [System.IO.Compression](11.0-rc1_System.IO.Compression.md) +* [System.Net.NetworkInformation](11.0-rc1_System.Net.NetworkInformation.md) * [System.Net.Security](11.0-rc1_System.Net.Security.md) * [System.Text.Json](11.0-rc1_System.Text.Json.md) diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_Microsoft.Extensions.Options.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_Microsoft.Extensions.Options.md new file mode 100644 index 0000000000..6e02828977 --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_Microsoft.Extensions.Options.md @@ -0,0 +1,35 @@ +# Microsoft.Extensions.Options + +```diff + namespace Microsoft.Extensions.Options + { + public class AsyncValidateOptions : Microsoft.Extensions.Options.IAsyncValidateOptions, Microsoft.Extensions.Options.IValidateOptions where TOptions : class + { ++ public Microsoft.Extensions.Options.ValidateOptionsResult Validate(string? name, TOptions options); + } + public class AsyncValidateOptions : Microsoft.Extensions.Options.IAsyncValidateOptions, Microsoft.Extensions.Options.IValidateOptions where TOptions : class + { ++ public Microsoft.Extensions.Options.ValidateOptionsResult Validate(string? name, TOptions options); + } + public class AsyncValidateOptions : Microsoft.Extensions.Options.IAsyncValidateOptions, Microsoft.Extensions.Options.IValidateOptions where TOptions : class + { ++ public Microsoft.Extensions.Options.ValidateOptionsResult Validate(string? name, TOptions options); + } + public class AsyncValidateOptions : Microsoft.Extensions.Options.IAsyncValidateOptions, Microsoft.Extensions.Options.IValidateOptions where TOptions : class + { ++ public Microsoft.Extensions.Options.ValidateOptionsResult Validate(string? name, TOptions options); + } + public class AsyncValidateOptions : Microsoft.Extensions.Options.IAsyncValidateOptions, Microsoft.Extensions.Options.IValidateOptions where TOptions : class + { ++ public Microsoft.Extensions.Options.ValidateOptionsResult Validate(string? name, TOptions options); + } + public class AsyncValidateOptions : Microsoft.Extensions.Options.IAsyncValidateOptions, Microsoft.Extensions.Options.IValidateOptions where TOptions : class + { ++ public Microsoft.Extensions.Options.ValidateOptionsResult Validate(string? name, TOptions options); + } ++ [System.ObsoleteAttribute("Implement IAsyncStartupValidator instead.", DiagnosticId = "SYSLIB0066", UrlFormat = "https://aka.ms/dotnet-warnings/{0}")] + public interface IStartupValidator + { + } + } +``` diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Net.NetworkInformation.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Net.NetworkInformation.md new file mode 100644 index 0000000000..348a632185 --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Net.NetworkInformation.md @@ -0,0 +1,11 @@ +# System.Net.NetworkInformation + +```diff + namespace System.Net.NetworkInformation + { + public class NetworkChange + { ++ public static bool IsSupported { get; } + } + } +``` diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Text.Json.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Text.Json.md index 90dbd8c4f2..c3b638cd7a 100644 --- a/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Text.Json.md +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Text.Json.md @@ -7,6 +7,12 @@ { + public bool InferClosedTypePolymorphism { get; set; } } ++ public class JsonUnionTypeStructuralClassifier : System.Text.Json.Serialization.JsonTypeClassifierFactory ++ { ++ public JsonUnionTypeStructuralClassifier(); ++ public override bool CanClassify(System.Text.Json.Serialization.JsonTypeClassifierContext context); ++ public override System.Text.Json.Serialization.JsonTypeClassifier CreateJsonClassifier(System.Text.Json.Serialization.JsonTypeClassifierContext context, System.Text.Json.JsonSerializerOptions options); ++ } } namespace System.Text.Json.Serialization.Metadata { diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.WindowsDesktop.App/11.0-rc1_System.Windows.Forms.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.WindowsDesktop.App/11.0-rc1_System.Windows.Forms.md index d00fda403a..05cd12b0a6 100644 --- a/release-notes/11.0/preview/rc1/api-diff/Microsoft.WindowsDesktop.App/11.0-rc1_System.Windows.Forms.md +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.WindowsDesktop.App/11.0-rc1_System.Windows.Forms.md @@ -3,10 +3,53 @@ ```diff namespace System.Windows.Forms { + public class PrintPreviewControl : System.Windows.Forms.Control + { ++ public override System.Drawing.Color ForeColor { get; set; } + } public class PropertyGrid : System.Windows.Forms.ContainerControl, System.Windows.Forms.ComponentModel.Com2Interop.IComPropertyBrowser { + [System.ComponentModel.BrowsableAttribute(false)] + public event System.EventHandler? VisualStylesModeChanged { add; remove; } } + public class TreeView : System.Windows.Forms.Control + { +- public event System.EventHandler? NodeLeadingChanged { add; remove; } +- protected virtual void OnNodeLeadingChanged(System.EventArgs e); +- [System.ComponentModel.DefaultValueAttribute(0)] +- public float NodeLeading { get; set; } + } ++ [System.ComponentModel.DefaultPropertyAttribute("ToggleFullScreenKeys")] ++ [System.ComponentModel.ToolboxItemFilterAttribute("System.Windows.Forms")] ++ public class KioskModeManager : System.ComponentModel.Component, System.ComponentModel.ISupportInitialize ++ { ++ public event System.EventHandler? ContainerControlChanged { add; remove; } ++ public event System.EventHandler? FullScreenChanged { add; remove; } ++ public KioskModeManager(); ++ public KioskModeManager(System.ComponentModel.IContainer container); ++ protected override void Dispose(bool disposing); ++ protected virtual void OnContainerControlChanged(System.EventArgs e); ++ protected virtual void OnFullScreenChanged(System.EventArgs e); ++ void System.ComponentModel.ISupportInitialize.BeginInit(); ++ void System.ComponentModel.ISupportInitialize.EndInit(); ++ public void ToggleFullScreen(); ++ [System.ComponentModel.DefaultValueAttribute(false)] ++ public bool AlwaysOn { get; set; } ++ [System.ComponentModel.DefaultValueAttribute(null)] ++ public System.Windows.Forms.ContainerControl? ContainerControl { get; set; } ++ [System.ComponentModel.DefaultValueAttribute(true)] ++ public bool EscapeExitsFullScreen { get; set; } ++ [System.ComponentModel.BindableAttribute(true)] ++ [System.ComponentModel.DefaultValueAttribute(false)] ++ [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] ++ public bool FullScreen { get; set; } ++ [System.ComponentModel.DefaultValueAttribute(0)] ++ public int MousePointerAutoHideDelay { get; set; } ++ public override System.ComponentModel.ISite? Site { get; set; } ++ [System.ComponentModel.DefaultValueAttribute(System.Windows.Forms.Keys.F11)] ++ public System.Windows.Forms.Keys ToggleFullScreenKeys { get; set; } ++ [System.ComponentModel.DefaultValueAttribute(false)] ++ public bool TopMostInFullScreen { get; set; } ++ } } ``` From f3dd751736df41b2da2fc96039e690ad375bd041 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 21 Aug 2026 13:53:41 +0000 Subject: [PATCH 4/4] API diff 11.0-preview.7 -> 11.0-rc.1 --- .../Microsoft.NETCore.App/11.0-rc1.md | 1 + .../11.0-rc1_System.Security.Cryptography.md | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Security.Cryptography.md diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1.md index eb3f81c9c1..301ef62eb9 100644 --- a/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1.md +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1.md @@ -9,4 +9,5 @@ Lines preceded by a '+' are additions and a '-' indicates removal. * [System.IO.Compression](11.0-rc1_System.IO.Compression.md) * [System.Net.NetworkInformation](11.0-rc1_System.Net.NetworkInformation.md) * [System.Net.Security](11.0-rc1_System.Net.Security.md) +* [System.Security.Cryptography](11.0-rc1_System.Security.Cryptography.md) * [System.Text.Json](11.0-rc1_System.Text.Json.md) diff --git a/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Security.Cryptography.md b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Security.Cryptography.md new file mode 100644 index 0000000000..34c5773031 --- /dev/null +++ b/release-notes/11.0/preview/rc1/api-diff/Microsoft.NETCore.App/11.0-rc1_System.Security.Cryptography.md @@ -0,0 +1,20 @@ +# System.Security.Cryptography + +```diff + namespace System.Security.Cryptography + { + public abstract class Aes : System.Security.Cryptography.SymmetricAlgorithm + { ++ public byte[] DecryptKeyWrap(byte[] ciphertext); ++ public int DecryptKeyWrap(System.ReadOnlySpan ciphertext, System.Span destination); ++ public byte[] DecryptKeyWrap(System.ReadOnlySpan ciphertext); ++ protected virtual int DecryptKeyWrapCore(System.ReadOnlySpan source, System.Span destination); ++ public byte[] EncryptKeyWrap(byte[] plaintext); ++ public void EncryptKeyWrap(System.ReadOnlySpan plaintext, System.Span destination); ++ public byte[] EncryptKeyWrap(System.ReadOnlySpan plaintext); ++ protected virtual void EncryptKeyWrapCore(System.ReadOnlySpan source, System.Span destination); ++ public static int GetKeyWrapLength(int plaintextLengthInBytes); ++ public bool TryDecryptKeyWrap(System.ReadOnlySpan ciphertext, System.Span destination, out int bytesWritten); + } + } +```