8000 API diff between .NET 10 Preview 2 and .NET 10 Preview 3 by carlossanlop · Pull Request #9821 · dotnet/core · GitHub
[go: up one dir, main page]

Skip to content

API diff between .NET 10 Preview 2 and .NET 10 Preview 3 #9821

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Mar 28, 2025
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# API difference between .NET 10.0 Preview 2 and .NET 10.0 Preview 3

API listing follows standard diff formatting.
Lines preceded by a '+' are additions and a '-' indicates removal.

* [Microsoft.AspNetCore.Components](10.0-preview3_Microsoft.AspNetCore.Components.md)
* [Microsoft.AspNetCore.Components.Endpoints](10.0-preview3_Microsoft.AspNetCore.Components.Endpoints.md)
* [Microsoft.AspNetCore.Http.Abstractions](10.0-preview3_Microsoft.AspNetCore.Http.Abstractions.md)
* [Microsoft.AspNetCore.Http.Results](10.0-preview3_Microsoft.AspNetCore.Http.Results.md)
* [Microsoft.AspNetCore.Routing](10.0-preview3_Microsoft.AspNetCore.Routing.md)
* [Microsoft.Extensions.Caching.Memory](10.0-preview3_Microsoft.Extensions.Caching.Memory.md)
* [System.Threading.RateLimiting](10.0-preview3_System.Threading.RateLimiting.md)

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Microsoft.AspNetCore.Components.Endpoints

```diff
namespace Microsoft.Extensions.DependencyInjection
{
+ public static class RazorComponentsRazorComponentBuilderExtensions
+ {
+ public static Microsoft.Extensions.DependencyInjection.IRazorComponentsBuilder RegisterPersistentService<TPersistentService>(this Microsoft.Extensions.DependencyInjection.IRazorComponentsBuilder builder, Microsoft.AspNetCore.Components.IComponentRenderMode renderMode);
+ }
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Microsoft.AspNetCore.Components

```diff
namespace Microsoft.AspNetCore.Components
{
public abstract class NavigationManager
{
+ public event System.EventHandler<System.EventArgs> NotFoundEvent { add; remove; }
+ public virtual void NotFound();
}
+ public sealed class SupplyParameterFromPersistentComponentStateAttribute : Microsoft.AspNetCore.Components.CascadingParameterAttributeBase
+ {
+ public SupplyParameterFromPersistentComponentStateAttribute();
+ }
}
namespace Microsoft.AspNetCore.Components.Infrastructure
{
public class ComponentStatePersistenceManager
{
+ public ComponentStatePersistenceManager(Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Components.Infrastructure.ComponentStatePersistenceManager> logger, System.IServiceProvider serviceProvider);
+ public void SetPlatformRenderMode(Microsoft.AspNetCore.Components.IComponentRenderMode renderMode);
}
+ public static class RegisterPersistentComponentStateServiceCollectionExtensions
+ {
+ public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddPersistentServiceRegistration<TService>(Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.AspNetCore.Components.IComponentRenderMode componentRenderMode);
+ }
}
namespace Microsoft.Extensions.DependencyInjection
{
+ public static class SupplyParameterFromPersistentComponentStateProviderServiceCollectionExtensions
+ {
+ public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddSupplyValueFromPersistentComponentStateProvider(this Microsoft.Extensions.DependencyInjection.IServiceCollection services);
+ }
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Microsoft.AspNetCore.Http.Abstractions

```diff
namespace Microsoft.AspNetCore.Http.Metadata
{
+ public interface IDisableValidationMetadata
+ {
+ }
}
+ namespace Microsoft.AspNetCore.Http.Validation
+ {
+ public interface IValidatableInfo
+ {
+ }
+ public interface IValidatableInfoResolver
+ {
+ }
+ public abstract class ValidatableParameterInfo : Microsoft.AspNetCore.Http.Validation.IValidatableInfo
+ {
+ protected ValidatableParameterInfo(System.Type parameterType, string name, string displayName);
+ protected abstract System.ComponentModel.DataAnnotations.ValidationAttribute[] GetValidationAttributes();
+ public virtual System.Threading.Tasks.Task ValidateAsync(object? value, Microsoft.AspNetCore.Http.Validation.ValidateContext context, System.Threading.CancellationToken cancellationToken);
+ }
+ public abstract class ValidatablePropertyInfo : Microsoft.AspNetCore.Http.Validation.IValidatableInfo
+ {
+ protected ValidatablePropertyInfo(System.Type declaringType, System.Type propertyType, string name, string displayName);
+ protected abstract System.ComponentModel.DataAnnotations.ValidationAttribute[] GetValidationAttributes();
+ public virtual System.Threading.Tasks.Task ValidateAsync(object? value, Microsoft.AspNetCore.Http.Validation.ValidateContext context, System.Threading.CancellationToken cancellationToken);
+ }
+ public sealed class ValidatableTypeAttribute
+ {
+ public ValidatableTypeAttribute();
+ }
+ public abstract class ValidatableTypeInfo : Microsoft.AspNetCore.Http.Validation.IValidatableInfo
+ {
+ protected ValidatableTypeInfo(System.Type type, System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Http.Validation.ValidatablePropertyInfo> members);
+ public virtual System.Threading.Tasks.Task ValidateAsync(object? value, Microsoft.AspNetCore.Http.Validation.ValidateContext context, System.Threading.CancellationToken cancellationToken);
+ }
+ public sealed class ValidateContext
+ {
+ public ValidateContext();
+ public int CurrentDepth { get; set; }
+ public string CurrentValidationPath { get; set; }
+ public System.ComponentModel.DataAnnotations.ValidationContext? ValidationContext { get; set; }
+ public System.Collections.Generic.Dictionary<string, string[]>? ValidationErrors { get; set; }
+ public required Microsoft.AspNetCore.Http.Validation.ValidationOptions ValidationOptions { get; set; }
+ }
+ public class ValidationOptions
+ {
+ public ValidationOptions();
+ public bool TryGetValidatableParameterInfo(System.Reflection.ParameterInfo parameterInfo, out Microsoft.AspNetCore.Http.Validation.IValidatableInfo? validatableInfo);
+ public bool TryGetValidatableTypeInfo(System.Type type, out Microsoft.AspNetCore.Http.Validation.IValidatableInfo? validatableTypeInfo);
+ public int MaxDepth { get; set; }
+ public System.Collections.Generic.IList<Microsoft.AspNetCore.Http.Validation.IValidatableInfoResolver> Resolvers { get; }
+ }
+ }
+ namespace Microsoft.Extensions.DependencyInjection
+ {
+ public static class ValidationServiceCollectionExtensions
+ {
+ public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddValidation(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action<Microsoft.AspNetCore.Http.Validation.ValidationOptions>? configureOptions = null);
+ }
+ }
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Microsoft.AspNetCore.Http.Results

```diff
namespace Microsoft.AspNetCore.Http
{
public static class Results
{
+ public static Microsoft.AspNetCore.Http.IResult ServerSentEvents(System.Collections.Generic.IAsyncEnumerable<string> values, string? eventType = null);
+ public static Microsoft.AspNetCore.Http.IResult ServerSentEvents<T>(System.Collections.Generic.IAsyncEnumerable<T> values, string? eventType = null);
+ public static Microsoft.AspNetCore.Http.IResult ServerSentEvents<T>(System.Collections.Generic.IAsyncEnumerable<System.Net.ServerSentEvents.SseItem<T>> values);
}
public static class TypedResults
{
+ public static Microsoft.AspNetCore.Http.HttpResults.ServerSentEventsResult<string> ServerSentEvents(System.Collections.Generic.IAsyncEnumerable<string> values, string? eventType = null);
+ public static Microsoft.AspNetCore.Http.HttpResults.ServerSentEventsResult<T> ServerSentEvents<T>(System.Collections.Generic.IAsyncEnumerable<T> values, string? eventType = null);
+ public static Microsoft.AspNetCore.Http.HttpResults.ServerSentEventsResult<T> ServerSentEvents<T>(System.Collections.Generic.IAsyncEnumerable<System.Net.ServerSentEvents.SseItem<T>> values);
}
}
namespace Microsoft.AspNetCore.Http.HttpResults
{
+ public sealed class ServerSentEventsResult<T> : Microsoft.AspNetCore.Http.IResult, Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider, Microsoft.AspNetCore.Http.IStatusCodeHttpResult
+ {
+ public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext);
+ public System.Nullable<int> StatusCode { get; }
+ }
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Microsoft.AspNetCore.Routing

```diff
namespace Microsoft.AspNetCore.Builder
{
+ public static class ValidationEndpointConventionBuilderExtensions
+ {
+ public static TBuilder DisableValidation<TBuilder>(this TBuilder builder)
+ where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder;
+ }
}
```
Original file line number Diff 8000 line number Diff line change
@@ -0,0 +1,12 @@
# Microsoft.Extensions.Caching.Memory

```diff
namespace Microsoft.Extensions.Caching.Memory
{
public class MemoryCache : Microsoft.Extensions.Caching.Memory.IMemoryCache
{
+ public bool TryGetValue(System.ReadOnlySpan<char> key, out object? value);
+ public bool? TryGetValue<TItem>(System.ReadOnlySpan<char> key, out TItem? value);
}
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# System.Threading.RateLimiting

```diff
namespace System.Threading.RateLimiting
{
public abstract class RateLimiter
{
+ public static System.Threading.RateLimiting.RateLimiter CreateChained(params System.Threading.RateLimiting.RateLimiter[] limiters);
}
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# API difference between .NET 10.0 Preview 2 and .NET 10.0 Preview 3

API listing follows standard diff formatting.
Lines preceded by a '+' are additions and a '-' indicates removal.

* [System.ComponentModel.Annotations](10.0-preview3_System.ComponentModel.Annotations.md)
* [System.Diagnostics.DiagnosticSource](10.0-preview3_System.Diagnostics.DiagnosticSource.md)
* [System.Formats.Asn1](10.0-preview3_System.Formats.Asn1.md)
* [System.Memory](10.0-preview3_System.Memory.md)
* [System.Net.Primitives](10.0-preview3_System.Net.Primitives.md)
* [System.Net.Security](10.0-preview3_System.Net.Security.md)
* [System.Net.ServerSentEvents](10.0-preview3_System.Net.ServerSentEvents.md)
* [System.Runtime](10.0-preview3_System.Runtime.md)
* [System.Security.Claims](10.0-preview3_System.Security.Claims.md)
* [System.Security.Cryptography](10.0-preview3_System.Security.Cryptography.md)
* [System.Threading](10.0-preview3_System.Threading.md)

Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# System.ComponentModel.Annotations

```diff
namespace System.ComponentModel.DataAnnotations
{
public sealed class ValidationContext : System.IServiceProvider
{
- [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("The Type of instance cannot be statically discovered and the Type's properties can be trimmed.")]
+ [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("Constructing a ValidationContext without a display name is not trim-safe because it uses reflection to discover the type of the instance being validated in order to resolve the DisplayNameAttribute when a display name is not provided.")]
public ValidationContext(object instance, System.Collections.Generic.IDictionary<object, object?>? items);
- [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("The Type of instance cannot be statically discovered and the Type's properties can be trimmed.")]
+ [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("Constructing a ValidationContext without a display name is not trim-safe because it uses reflection to discover the type of the instance being validated in order to resolve the DisplayNameAttribute when a display name is not provided.")]
public ValidationContext(object instance, System.IServiceProvider? serviceProvider, System.Collections.Generic.IDictionary<object, object?>? items);
- [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("The Type of instance cannot be statically discovered and the Type's properties can be trimmed.")]
+ [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("Constructing a ValidationContext without a display name is not trim-safe because it uses reflection to discover the type of the instance being validated in order to resolve the DisplayNameAttribute when a display name is not provided.")]
public ValidationContext(object instance);
+ public ValidationContext(object instance, string displayName, System.IServiceProvider? serviceProvider, System.Collections.Generic.IDictionary<object, object?>? items);
}
public static class Validator
{
- [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("The Type of instance cannot be statically discovered and the Type's properties can be trimmed.")]
+ [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("Constructing a ValidationContext without a display name is not trim-safe because it uses reflection to discover the type of the instance being validated in order to resolve the DisplayNameAttribute when a display name is not provided.")]
public static bool TryValidateObject(object instance, System.ComponentModel.DataAnnotations.ValidationContext validationContext, System.Collections.Generic.ICollection<System.ComponentModel.DataAnnotations.ValidationResult>? validationResults, bool validateAllProperties);
- [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("The Type of instance cannot be statically discovered and the Type's properties can be trimmed.")]
+ [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("Constructing a ValidationContext without a display name is not trim-safe because it uses reflection to discover the type of the instance being validated in order to resolve the DisplayNameAttribute when a display name is not provided.")]
public static bool TryValidateObject(object instance, System.ComponentModel.DataAnnotations.ValidationContext validationContext, System.Collections.Generic.ICollection<System.ComponentModel.DataAnnotations.ValidationResult>? validationResults);
- [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("The Type of instance cannot be statically discovered and the Type's properties can be trimmed.")]
+ [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("Constructing a ValidationContext without a display name is not trim-safe because it uses reflection to discover the type of the instance being validated in order to resolve the DisplayNameAttribute when a display name is not provided.")]
public static void ValidateObject(object instance, System.ComponentModel.DataAnnotations.ValidationContext validationContext, bool validateAllProperties);
- [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("The Type of instance cannot be statically discovered and the Type's properties can be trimmed.")]
+ [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("Constructing a ValidationContext without a display name is not trim-safe because it uses reflection to discover the type of the instance being validated in order to resolve the DisplayNameAttribute when a display name is not provided.")]
public static void ValidateObject(object instance, System.ComponentModel.DataAnnotations.ValidationContext validationContext);
}
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# System.Diagnostics.DiagnosticSource

```diff
namespace System.Diagnostics
{
public sealed class ActivitySource : System.IDisposable
{
+ public ActivitySource(System.Diagnostics.ActivitySourceOptions options);
+ public string? TelemetrySchemaUrl { get; }
}
+ public class ActivitySourceOptions
+ {
+ public ActivitySourceOptions(string name);
+ public string Name { get; set; }
+ public System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, object?>>? Tags { get; set; }
+ public string? TelemetrySchemaUrl { get; set; }
+ public string? Version { get; set; }
+ }
}
namespace System.Diagnostics.Metrics
{
public class Meter : System.IDisposable
{
+ public string? TelemetrySchemaUrl { get; }
}
public class MeterOptions
{
+ public string? TelemetrySchemaUrl { get; set; }
}
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# System.Formats.Asn1

```diff
namespace System.Formats.Asn1
{
public sealed class AsnWriter
{
+ public void Encode<TState>(TState state, System.Action<TState, System.ReadOnlySpan<byte>> encodeCallback);
}
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# System.Memory

```diff
namespace System
{
public static class MemoryExtensions
{
+ public static int CountAny<T>(this System.ReadOnlySpan<T> span, System.Buffers.SearchValues<T> values)
+ where T : System.IEquatable<T>?;
+ public static int CountAny<T>(this System.ReadOnlySpan<T> span, System.ReadOnlySpan<T> values, System.Collections.Generic.IEqualityComparer<T>? comparer = null);
+ public static int CountAny<T>(this System.ReadOnlySpan<T> span, params scoped System.ReadOnlySpan<T> values)
+ where T : System.IEquatable<T>?;
+ public static void ReplaceAny<T>(this System.ReadOnlySpan<T> source, System.Span<T> destination, System.Buffers.SearchValues<T> values, T newValue)
+ where T : System.IEquatable<T>?;
+ public static void ReplaceAny<T>(this System.Span<T> span, System.Buffers.SearchValues<T> values, T newValue)
+ where T : System.IEquatable<T>?;
+ public static void ReplaceAnyExcept<T>(this System.ReadOnlySpan<T> source, System.Span<T> destination, System.Buffers.SearchValues<T> values, T newValue)
+ where T : System.IEquatable<T>?;
+ public static void ReplaceAnyExcept<T>(this System.Span<T> span, System.Buffers.SearchValues<T> values, T newValue)
+ where T : System.IEquatable<T>?;
}
}
```
Loading
0