Skip to content

Commit 8723b59

Browse files
authored
API diff between .NET 9 Preview 4 and .NET 9 Preview 5 (#9352)
* Microsoft.AspNetCore.App * Microsoft.NETCore.App * Microsoft.WindowsDesktop.App * README.md * Remove System.IO.Pipelines changes * Remove System.Diagnostics.Metrics changes
1 parent 559fd95 commit 8723b59

29 files changed

+1008
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# API Difference 9.0-preview4 vs 9.0-preview5
2+
3+
API listing follows standard diff formatting.
4+
Lines preceded by a '+' are additions and a '-' indicates removal.
5+
6+
* [Microsoft.AspNetCore.Builder](9.0-preview5_Microsoft.AspNetCore.Builder.md)
7+
* [Microsoft.AspNetCore.Components](9.0-preview5_Microsoft.AspNetCore.Components.md)
8+
* [Microsoft.AspNetCore.Components.Authorization](9.0-preview5_Microsoft.AspNetCore.Components.Authorization.md)
9+
* [Microsoft.AspNetCore.Components.Endpoints.Infrastructure](9.0-preview5_Microsoft.AspNetCore.Components.Endpoints.Infrastructure.md)
10+
* [Microsoft.AspNetCore.Components.HtmlRendering.Infrastructure](9.0-preview5_Microsoft.AspNetCore.Components.HtmlRendering.Infrastructure.md)
11+
* [Microsoft.AspNetCore.Components.RenderTree](9.0-preview5_Microsoft.AspNetCore.Components.RenderTree.md)
12+
* [Microsoft.AspNetCore.Mvc.Infrastructure](9.0-preview5_Microsoft.AspNetCore.Mvc.Infrastructure.md)
13+
* [Microsoft.AspNetCore.Routing](9.0-preview5_Microsoft.AspNetCore.Routing.md)
14+
* [Microsoft.AspNetCore.StaticAssets](9.0-preview5_Microsoft.AspNetCore.StaticAssets.md)
15+
* [Microsoft.AspNetCore.StaticAssets.Infrastructure](9.0-preview5_Microsoft.AspNetCore.StaticAssets.Infrastructure.md)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Microsoft.AspNetCore.Builder
2+
3+
``` diff
4+
namespace Microsoft.AspNetCore.Builder {
5+
+ public static class StaticAssetsEndpointRouteBuilderExtensions {
6+
+ public static StaticAssetsEndpointConventionBuilder MapStaticAssets(this IEndpointRouteBuilder endpoints, string? staticAssetsManifestPath = null);
7+
+ }
8+
}
9+
```
10+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Microsoft.AspNetCore.Components.Authorization
2+
3+
``` diff
4+
namespace Microsoft.AspNetCore.Components.Authorization {
5+
+ public class AuthenticationStateData {
6+
+ public AuthenticationStateData();
7+
+ public IList<KeyValuePair<string, string>> Claims { get; set; }
8+
+ public string NameClaimType { get; set; }
9+
+ public string RoleClaimType { get; set; }
10+
+ }
11+
}
12+
```
13+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Microsoft.AspNetCore.Components.Endpoints.Infrastructure
2+
3+
``` diff
4+
namespace Microsoft.AspNetCore.Components.Endpoints.Infrastructure {
5+
public static class ComponentEndpointConventionBuilderHelper {
6+
+ public static IEndpointRouteBuilder GetEndpointRouteBuilder(RazorComponentsEndpointConventionBuilder builder);
7+
}
8+
}
9+
```
10+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Microsoft.AspNetCore.Components.HtmlRendering.Infrastructure
2+
3+
``` diff
4+
namespace Microsoft.AspNetCore.Components.HtmlRendering.Infrastructure {
5+
public class StaticHtmlRenderer : Renderer {
6+
+ protected internal override ComponentPlatform ComponentPlatform { get; }
7+
}
8+
}
9+
```
10+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Microsoft.AspNetCore.Components.RenderTree
2+
3+
``` diff
4+
namespace Microsoft.AspNetCore.Components.RenderTree {
5+
public abstract class Renderer : IAsyncDisposable, IDisposable {
6+
+ protected internal virtual ComponentPlatform ComponentPlatform { get; }
7+
}
8+
}
9+
```
10+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Microsoft.AspNetCore.Components
2+
3+
``` diff
4+
namespace Microsoft.AspNetCore.Components {
5+
public abstract class ComponentBase : IComponent, IHandleAfterRender, IHandleEvent {
6+
+ protected IComponentRenderMode? AssignedRenderMode { get; }
7+
+ protected ComponentPlatform Platform { get; }
8+
}
9+
+ public sealed class ComponentPlatform {
10+
+ public ComponentPlatform(string platformName, bool isInteractive);
11+
+ public bool IsInteractive { get; }
12+
+ public string Name { get; }
13+
+ }
14+
public readonly struct RenderHandle {
15+
+ public ComponentPlatform Platform { get; }
16+
+ public IComponentRenderMode? RenderMode { get; }
17+
}
18+
}
19+
```
20+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Microsoft.AspNetCore.Mvc.Infrastructure
2+
3+
``` diff
4+
namespace Microsoft.AspNetCore.Mvc.Infrastructure {
5+
+ public sealed class DefaultProblemDetailsFactory : ProblemDetailsFactory {
6+
+ public DefaultProblemDetailsFactory(IOptions<ApiBehaviorOptions> options, IOptions<ProblemDetailsOptions>? problemDetailsOptions = null);
7+
+ public override ProblemDetails CreateProblemDetails(HttpContext httpContext, int? statusCode = default(int?), string title = null, string type = null, string detail = null, string instance = null);
8+
+ public override ValidationProblemDetails CreateValidationProblemDetails(HttpContext httpContext, ModelStateDictionary modelStateDictionary, int? statusCode = default(int?), string title = null, string type = null, string detail = null, string instance = null);
9+
+ }
10+
}
11+
```
12+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Microsoft.AspNetCore.Routing
2+
3+
``` diff
4+
namespace Microsoft.AspNetCore.Routing {
5+
+ public sealed class ContentEncodingMetadata : INegotiateMetadata {
6+
+ public ContentEncodingMetadata(string value, double quality);
7+
+ public double Quality { get; }
8+
+ public string Value { get; }
9+
+ }
10+
}
11+
```
12+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Microsoft.AspNetCore.StaticAssets.Infrastructure
2+
3+
``` diff
4+
+namespace Microsoft.AspNetCore.StaticAssets.Infrastructure {
5+
+ public static class StaticAssetsEndpointDataSourceHelper {
6+
+ public static bool IsStaticAssetsDataSource(EndpointDataSource dataSource, string? staticAssetsManifestPath = null);
7+
+ }
8+
+}
9+
```
10+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Microsoft.AspNetCore.StaticAssets
2+
3+
``` diff
4+
+namespace Microsoft.AspNetCore.StaticAssets {
5+
+ public sealed class StaticAssetsEndpointConventionBuilder : IEndpointConventionBuilder {
6+
+ public void Add(Action<EndpointBuilder> convention);
7+
+ public void Finally(Action<EndpointBuilder> convention);
8+
+ }
9+
+}
10+
```
11+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# API Difference 9.0-preview4 vs 9.0-preview5
2+
3+
API listing follows standard diff formatting.
4+
Lines preceded by a '+' are additions and a '-' indicates removal.
5+
6+
* [System](9.0-preview5_System.md)
7+
* [System.Collections.Frozen](9.0-preview5_System.Collections.Frozen.md)
8+
* [System.ComponentModel](9.0-preview5_System.ComponentModel.md)
9+
* [System.Diagnostics](9.0-preview5_System.Diagnostics.md)
10+
`* [System.IO.Pipelines](9.0-preview5_System.IO.Pipelines.md)
11+
* [System.Numerics](9.0-preview5_System.Numerics.md)
12+
* [System.Reflection](9.0-preview5_System.Reflection.md)
13+
* [System.Reflection.Metadata](9.0-preview5_System.Reflection.Metadata.md)
14+
* [System.Runtime.CompilerServices](9.0-preview5_System.Runtime.CompilerServices.md)
15+
* [System.Runtime.InteropServices](9.0-preview5_System.Runtime.InteropServices.md)
16+
* [System.Runtime.Intrinsics](9.0-preview5_System.Runtime.Intrinsics.md)
17+
* [System.Runtime.Intrinsics.Arm](9.0-preview5_System.Runtime.Intrinsics.Arm.md)
18+
* [System.Text.Json](9.0-preview5_System.Text.Json.md)
19+
* [System.Text.Json.Serialization](9.0-preview5_System.Text.Json.Serialization.md)
20+
* [System.Text.Json.Serialization.Metadata](9.0-preview5_System.Text.Json.Serialization.Metadata.md)
21+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# System.Collections.Frozen
2+
3+
``` diff
4+
namespace System.Collections.Frozen {
5+
public static class FrozenSet {
6+
+ public static FrozenSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, ReadOnlySpan<T> source);
7+
+ public static FrozenSet<T> Create<T>(ReadOnlySpan<T> source);
8+
}
9+
}
10+
```
11+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# System.ComponentModel
2+
3+
``` diff
4+
namespace System.ComponentModel {
5+
public class ComponentResourceManager : ResourceManager {
6+
+ public virtual void ApplyResourcesToRegisteredType(object value, string objectName, CultureInfo? culture);
7+
}
8+
public abstract class CustomTypeDescriptor : ICustomTypeDescriptor {
9+
- protected CustomTypeDescriptor(ICustomTypeDescriptor parent);
10+
+ protected CustomTypeDescriptor(ICustomTypeDescriptor? parent);
11+
+ public virtual bool? RequireRegisteredTypes { get; }
12+
- public virtual string GetClassName();
13+
+ public virtual string? GetClassName();
14+
- public virtual string GetComponentName();
15+
+ public virtual string? GetComponentName();
16+
- public virtual TypeConverter GetConverter();
17+
+ public virtual TypeConverter? GetConverter();
18+
+ public virtual TypeConverter? GetConverterFromRegisteredType();
19+
- public virtual EventDescriptor GetDefaultEvent();
20+
+ public virtual EventDescriptor? GetDefaultEvent();
21+
- public virtual PropertyDescriptor GetDefaultProperty();
22+
+ public virtual PropertyDescriptor? GetDefaultProperty();
23+
+ public virtual EventDescriptorCollection GetEventsFromRegisteredType();
24+
+ public virtual PropertyDescriptorCollection GetPropertiesFromRegisteredType();
25+
- public virtual object GetPropertyOwner(PropertyDescriptor pd);
26+
+ public virtual object? GetPropertyOwner(PropertyDescriptor? pd);
27+
}
28+
public interface ICustomTypeDescriptor {
29+
+ bool? RequireRegisteredTypes { get; }
30+
+ TypeConverter? GetConverterFromRegisteredType();
31+
+ EventDescriptorCollection GetEventsFromRegisteredType();
32+
+ PropertyDescriptorCollection GetPropertiesFromRegisteredType();
33+
}
34+
public abstract class PropertyDescriptor : MemberDescriptor {
35+
+ public virtual TypeConverter ConverterFromRegisteredType { get; }
36+
}
37+
public abstract class TypeDescriptionProvider {
38+
+ public virtual bool? RequireRegisteredTypes { get; }
39+
+ public virtual ICustomTypeDescriptor GetExtendedTypeDescriptorFromRegisteredType(object instance);
40+
+ public ICustomTypeDescriptor? GetTypeDescriptorFromRegisteredType(object instance);
41+
+ public ICustomTypeDescriptor? GetTypeDescriptorFromRegisteredType(Type objectType);
42+
+ public virtual ICustomTypeDescriptor? GetTypeDescriptorFromRegisteredType(Type objectType, object? instance);
43+
+ public virtual bool IsRegisteredType(Type type);
44+
+ public virtual void RegisterType<T>();
45+
}
46+
public sealed class TypeDescriptor {
47+
+ public static TypeConverter GetConverterFromRegisteredType(object component);
48+
+ public static TypeConverter GetConverterFromRegisteredType(Type type);
49+
+ public static EventDescriptorCollection GetEventsFromRegisteredType(Type componentType);
50+
+ public static PropertyDescriptorCollection GetPropertiesFromRegisteredType(object component);
51+
+ public static PropertyDescriptorCollection GetPropertiesFromRegisteredType(Type componentType);
52+
+ public static void RegisterType<T>();
53+
}
54+
}
55+
```
56+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# System.Diagnostics
2+
3+
``` diff
4+
namespace System.Diagnostics {
5+
public class Activity : IDisposable {
6+
+ public Activity AddLink(ActivityLink link);
7+
}
8+
}
9+
```
10+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# System.IO.Pipelines
2+
3+
``` diff
4+
+namespace System.IO.Pipelines {
5+
+ public struct FlushResult {
6+
+ public FlushResult(bool isCanceled, bool isCompleted);
7+
+ public bool IsCanceled { get; }
8+
+ public bool IsCompleted { get; }
9+
+ }
10+
+ public interface IDuplexPipe {
11+
+ PipeReader Input { get; }
12+
+ PipeWriter Output { get; }
13+
+ }
14+
+ public sealed class Pipe {
15+
+ public Pipe();
16+
+ public Pipe(PipeOptions options);
17+
+ public PipeReader Reader { get; }
18+
+ public PipeWriter Writer { get; }
19+
+ public void Reset();
20+
+ }
21+
+ public class PipeOptions {
22+
+ public PipeOptions(MemoryPool<byte>? pool = null, PipeScheduler? readerScheduler = null, PipeScheduler? writerScheduler = null, long pauseWriterThreshold = (long)-1, long resumeWriterThreshold = (long)-1, int minimumSegmentSize = -1, bool useSynchronizationContext = true);
23+
+ public static PipeOptions Default { get; }
24+
+ public int MinimumSegmentSize { get; }
25+
+ public long PauseWriterThreshold { get; }
26+
+ public MemoryPool<byte> Pool { get; }
27+
+ public PipeScheduler ReaderScheduler { get; }
28+
+ public long ResumeWriterThreshold { get; }
29+
+ public bool UseSynchronizationContext { get; }
30+
+ public PipeScheduler WriterScheduler { get; }
31+
+ }
32+
+ public abstract class PipeReader {
33+
+ protected PipeReader();
34+
+ public abstract void AdvanceTo(SequencePosition consumed);
35+
+ public abstract void AdvanceTo(SequencePosition consumed, SequencePosition examined);
36+
+ public virtual Stream AsStream(bool leaveOpen = false);
37+
+ public abstract void CancelPendingRead();
38+
+ public abstract void Complete(Exception? exception = null);
39+
+ public virtual ValueTask CompleteAsync(Exception? exception = null);
40+
+ public virtual Task CopyToAsync(PipeWriter destination, CancellationToken cancellationToken = default(CancellationToken));
41+
+ public virtual Task CopyToAsync(Stream destination, CancellationToken cancellationToken = default(CancellationToken));
42+
+ public static PipeReader Create(ReadOnlySequence<byte> sequence);
43+
+ public static PipeReader Create(Stream stream, StreamPipeReaderOptions? readerOptions = null);
44+
+ public virtual void OnWriterCompleted(Action<Exception?, object?> callback, object? state);
45+
+ public abstract ValueTask<ReadResult> ReadAsync(CancellationToken cancellationToken = default(CancellationToken));
46+
+ public ValueTask<ReadResult> ReadAtLeastAsync(int minimumSize, CancellationToken cancellationToken = default(CancellationToken));
47+
+ protected virtual ValueTask<ReadResult> ReadAtLeastAsyncCore(int minimumSize, CancellationToken cancellationToken);
48+
+ public abstract bool TryRead(out ReadResult result);
49+
+ }
50+
+ public abstract class PipeScheduler {
51+
+ protected PipeScheduler();
52+
+ public static PipeScheduler Inline { get; }
53+
+ public static PipeScheduler ThreadPool { get; }
54+
+ public abstract void Schedule(Action<object?> action, object? state);
55+
+ }
56+
+ public abstract class PipeWriter : IBufferWriter<byte> {
57+
+ protected PipeWriter();
58+
+ public virtual bool CanGetUnflushedBytes { get; }
59+
+ public virtual long UnflushedBytes { get; }
60+
+ public abstract void Advance(int bytes);
61+
+ public virtual Stream AsStream(bool leaveOpen = false);
62+
+ public abstract void CancelPendingFlush();
63+
+ public abstract void Complete(Exception? exception = null);
64+
+ public virtual ValueTask CompleteAsync(Exception? exception = null);
65+
+ protected internal virtual Task CopyFromAsync(Stream source, CancellationToken cancellationToken = default(CancellationToken));
66+
+ public static PipeWriter Create(Stream stream, StreamPipeWriterOptions? writerOptions = null);
67+
+ public abstract ValueTask<FlushResult> FlushAsync(CancellationToken cancellationToken = default(CancellationToken));
68+
+ public abstract Memory<byte> GetMemory(int sizeHint = 0);
69+
+ public abstract Span<byte> GetSpan(int sizeHint = 0);
70+
+ public virtual void OnReaderCompleted(Action<Exception?, object?> callback, object? state);
71+
+ public virtual ValueTask<FlushResult> WriteAsync(ReadOnlyMemory<byte> source, CancellationToken cancellationToken = default(CancellationToken));
72+
+ }
73+
+ public readonly struct ReadResult {
74+
+ public ReadResult(ReadOnlySequence<byte> buffer, bool isCanceled, bool isCompleted);
75+
+ public ReadOnlySequence<byte> Buffer { get; }
76+
+ public bool IsCanceled { get; }
77+
+ public bool IsCompleted { get; }
78+
+ }
79+
+ public static class StreamPipeExtensions {
80+
+ public static Task CopyToAsync(this Stream source, PipeWriter destination, CancellationToken cancellationToken = default(CancellationToken));
81+
+ }
82+
+ public class StreamPipeReaderOptions {
83+
+ public StreamPipeReaderOptions(MemoryPool<byte>? pool, int bufferSize, int minimumReadSize, bool leaveOpen);
84+
+ public StreamPipeReaderOptions(MemoryPool<byte>? pool = null, int bufferSize = -1, int minimumReadSize = -1, bool leaveOpen = false, bool useZeroByteReads = false);
85+
+ public int BufferSize { get; }
86+
+ public bool LeaveOpen { get; }
87+
+ public int MinimumReadSize { get; }
88+
+ public MemoryPool<byte> Pool { get; }
89+
+ public bool UseZeroByteReads { get; }
90+
+ }
91+
+ public class StreamPipeWriterOptions {
92+
+ public StreamPipeWriterOptions(MemoryPool<byte>? pool = null, int minimumBufferSize = -1, bool leaveOpen = false);
93+
+ public bool LeaveOpen { get; }
94+
+ public int MinimumBufferSize { get; }
95+
+ public MemoryPool<byte> Pool { get; }
96+
+ }
97+
+}
98+
```
99+

0 commit comments

Comments
 (0)