Skip to content

Commit 7e5588b

Browse files
authored
Add nullable annotations to Mvc.Core/Routing (#28834)
1 parent dae62ab commit 7e5588b

File tree

57 files changed

+368
-281
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+368
-281
lines changed

src/Http/Http.Abstractions/src/PublicAPI.Shipped.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,9 @@ Microsoft.AspNetCore.Http.CookieSecurePolicy.None = 2 -> Microsoft.AspNetCore.Ht
6464
Microsoft.AspNetCore.Http.CookieSecurePolicy.SameAsRequest = 0 -> Microsoft.AspNetCore.Http.CookieSecurePolicy
6565
Microsoft.AspNetCore.Http.Endpoint
6666
Microsoft.AspNetCore.Http.Endpoint.DisplayName.get -> string?
67-
Microsoft.AspNetCore.Http.Endpoint.Endpoint(Microsoft.AspNetCore.Http.RequestDelegate! requestDelegate, Microsoft.AspNetCore.Http.EndpointMetadataCollection? metadata, string? displayName) -> void
67+
Microsoft.AspNetCore.Http.Endpoint.Endpoint(Microsoft.AspNetCore.Http.RequestDelegate? requestDelegate, Microsoft.AspNetCore.Http.EndpointMetadataCollection? metadata, string? displayName) -> void
6868
Microsoft.AspNetCore.Http.Endpoint.Metadata.get -> Microsoft.AspNetCore.Http.EndpointMetadataCollection!
69-
Microsoft.AspNetCore.Http.Endpoint.RequestDelegate.get -> Microsoft.AspNetCore.Http.RequestDelegate!
69+
Microsoft.AspNetCore.Http.Endpoint.RequestDelegate.get -> Microsoft.AspNetCore.Http.RequestDelegate?
7070
Microsoft.AspNetCore.Http.EndpointHttpContextExtensions
7171
Microsoft.AspNetCore.Http.EndpointMetadataCollection
7272
Microsoft.AspNetCore.Http.EndpointMetadataCollection.Count.get -> int
@@ -170,7 +170,7 @@ Microsoft.AspNetCore.Routing.RouteValueDictionary.Remove(string! key) -> bool
170170
Microsoft.AspNetCore.Routing.RouteValueDictionary.Remove(string! key, out object? value) -> bool
171171
Microsoft.AspNetCore.Routing.RouteValueDictionary.RouteValueDictionary() -> void
172172
Microsoft.AspNetCore.Routing.RouteValueDictionary.RouteValueDictionary(object? values) -> void
173-
Microsoft.AspNetCore.Routing.RouteValueDictionary.TryAdd(string! key, object! value) -> bool
173+
Microsoft.AspNetCore.Routing.RouteValueDictionary.TryAdd(string! key, object? value) -> bool
174174
Microsoft.AspNetCore.Routing.RouteValueDictionary.TryGetValue(string! key, out object? value) -> bool
175175
Microsoft.AspNetCore.Routing.RouteValueDictionary.Values.get -> System.Collections.Generic.ICollection<object?>!
176176
Microsoft.AspNetCore.Routing.RouteValueDictionary.this[string! key].get -> object?
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
#nullable enable
22
static Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.UseMiddleware(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, System.Type! middleware, params object?[]! args) -> Microsoft.AspNetCore.Builder.IApplicationBuilder!
33
static Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.UseMiddleware<TMiddleware>(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, params object?[]! args) -> Microsoft.AspNetCore.Builder.IApplicationBuilder!
4-

src/Http/Http.Abstractions/src/Routing/Endpoint.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class Endpoint
1919
/// The informational display name of the endpoint. May be null.
2020
/// </param>
2121
public Endpoint(
22-
RequestDelegate requestDelegate,
22+
RequestDelegate? requestDelegate,
2323
EndpointMetadataCollection? metadata,
2424
string? displayName)
2525
{
@@ -42,7 +42,7 @@ public Endpoint(
4242
/// <summary>
4343
/// Gets the delegate used to process requests for the endpoint.
4444
/// </summary>
45-
public RequestDelegate RequestDelegate { get; }
45+
public RequestDelegate? RequestDelegate { get; }
4646

4747
/// <summary>
4848
/// Returns a string representation of the endpoint.

src/Http/Http.Abstractions/src/Routing/RouteValueDictionary.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,7 @@ public bool Remove(string key, out object? value)
478478
/// <param name="key">The key.</param>
479479
/// <param name="value">The value.</param>
480480
/// <returns>Returns <c>true</c> if the value was added. Returns <c>false</c> if the key was already present.</returns>
481-
public bool TryAdd(string key, object value)
481+
public bool TryAdd(string key, object? value)
482482
{
483483
if (key == null)
484484
{

src/Http/Routing.Abstractions/src/LinkGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ public abstract class LinkGenerator
147147
public abstract string? GetUriByAddress<TAddress>(
148148
TAddress address,
149149
RouteValueDictionary values,
150-
string scheme,
150+
string? scheme,
151151
HostString host,
152152
PathString pathBase = default,
153153
FragmentString fragment = default,

src/Http/Routing.Abstractions/src/PublicAPI.Shipped.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#nullable enable
22
Microsoft.AspNetCore.Http.Endpoint (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
33
Microsoft.AspNetCore.Http.Endpoint.DisplayName.get -> string? (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
4-
Microsoft.AspNetCore.Http.Endpoint.Endpoint(Microsoft.AspNetCore.Http.RequestDelegate! requestDelegate, Microsoft.AspNetCore.Http.EndpointMetadataCollection? metadata, string? displayName) -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
4+
Microsoft.AspNetCore.Http.Endpoint.Endpoint(Microsoft.AspNetCore.Http.RequestDelegate? requestDelegate, Microsoft.AspNetCore.Http.EndpointMetadataCollection? metadata, string? displayName) -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
55
Microsoft.AspNetCore.Http.Endpoint.Metadata.get -> Microsoft.AspNetCore.Http.EndpointMetadataCollection! (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
6-
Microsoft.AspNetCore.Http.Endpoint.RequestDelegate.get -> Microsoft.AspNetCore.Http.RequestDelegate! (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
6+
Microsoft.AspNetCore.Http.Endpoint.RequestDelegate.get -> Microsoft.AspNetCore.Http.RequestDelegate? (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
77
Microsoft.AspNetCore.Http.EndpointMetadataCollection (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
88
Microsoft.AspNetCore.Http.EndpointMetadataCollection.Count.get -> int (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
99
Microsoft.AspNetCore.Http.EndpointMetadataCollection.EndpointMetadataCollection(System.Collections.Generic.IEnumerable<object!>! items) -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
@@ -86,7 +86,7 @@ Microsoft.AspNetCore.Routing.RouteValueDictionary.Remove(string! key) -> bool (f
8686
Microsoft.AspNetCore.Routing.RouteValueDictionary.Remove(string! key, out object? value) -> bool (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
8787
Microsoft.AspNetCore.Routing.RouteValueDictionary.RouteValueDictionary() -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
8888
Microsoft.AspNetCore.Routing.RouteValueDictionary.RouteValueDictionary(object? values) -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
89-
Microsoft.AspNetCore.Routing.RouteValueDictionary.TryAdd(string! key, object! value) -> bool (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
89+
Microsoft.AspNetCore.Routing.RouteValueDictionary.TryAdd(string! key, object? value) -> bool (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
9090
Microsoft.AspNetCore.Routing.RouteValueDictionary.TryGetValue(string! key, out object? value) -> bool (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
9191
Microsoft.AspNetCore.Routing.RouteValueDictionary.Values.get -> System.Collections.Generic.ICollection<object?>! (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
9292
Microsoft.AspNetCore.Routing.RouteValueDictionary.this[string! key].get -> object? (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
@@ -111,7 +111,7 @@ Microsoft.AspNetCore.Routing.VirtualPathData.VirtualPathData(Microsoft.AspNetCor
111111
abstract Microsoft.AspNetCore.Routing.LinkGenerator.GetPathByAddress<TAddress>(Microsoft.AspNetCore.Http.HttpContext! httpContext, TAddress address, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteValueDictionary? ambientValues = null, Microsoft.AspNetCore.Http.PathString? pathBase = null, Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions? options = null) -> string?
112112
abstract Microsoft.AspNetCore.Routing.LinkGenerator.GetPathByAddress<TAddress>(TAddress address, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions? options = null) -> string?
113113
abstract Microsoft.AspNetCore.Routing.LinkGenerator.GetUriByAddress<TAddress>(Microsoft.AspNetCore.Http.HttpContext! httpContext, TAddress address, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteValueDictionary? ambientValues = null, string? scheme = null, Microsoft.AspNetCore.Http.HostString? host = null, Microsoft.AspNetCore.Http.PathString? pathBase = null, Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions? options = null) -> string?
114-
abstract Microsoft.AspNetCore.Routing.LinkGenerator.GetUriByAddress<TAddress>(TAddress address, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, string! scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions? options = null) -> string?
114+
abstract Microsoft.AspNetCore.Routing.LinkGenerator.GetUriByAddress<TAddress>(TAddress address, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, string? scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions? options = null) -> string?
115115
override Microsoft.AspNetCore.Http.Endpoint.ToString() -> string? (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
116116
static Microsoft.AspNetCore.Routing.RouteValueDictionary.FromArray(System.Collections.Generic.KeyValuePair<string!, object?>[]! items) -> Microsoft.AspNetCore.Routing.RouteValueDictionary! (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions)
117117
static Microsoft.AspNetCore.Routing.RoutingHttpContextExtensions.GetRouteData(this Microsoft.AspNetCore.Http.HttpContext! httpContext) -> Microsoft.AspNetCore.Routing.RouteData!

src/Http/Routing/src/DataSourceDependentCache.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

4-
#nullable disable
4+
#nullable enable
55

66
using System;
77
using System.Collections.Generic;
8+
using System.Diagnostics.CodeAnalysis;
89
using System.Threading;
910
using Microsoft.AspNetCore.Http;
1011

@@ -21,9 +22,9 @@ internal sealed class DataSourceDependentCache<T> : IDisposable where T : class
2122

2223
private object _lock;
2324
private bool _initialized;
24-
private T _value;
25+
private T? _value;
2526

26-
private IDisposable _disposable;
27+
private IDisposable? _disposable;
2728
private bool _disposed;
2829

2930
public DataSourceDependentCache(EndpointDataSource dataSource, Func<IReadOnlyList<Endpoint>, T> initialize)
@@ -49,8 +50,10 @@ public DataSourceDependentCache(EndpointDataSource dataSource, Func<IReadOnlyLis
4950
// Note that we don't lock here, and think about that in the context of a 'push'. So when data gets 'pushed'
5051
// we start computing a new state, but we're still able to perform operations on the old state until we've
5152
// processed the update.
52-
public T Value => _value;
53+
[NotNullIfNotNull(nameof(_value))]
54+
public T? Value => _value;
5355

56+
[MemberNotNull(nameof(_value))]
5457
public T EnsureInitialized()
5558
{
5659
return LazyInitializer.EnsureInitialized<T>(ref _value, ref _initialized, ref _lock, _initializer);

src/Http/Routing/src/DataTokensMetadata.cs

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
// Copyright (c) .NET Foundation. All rights reserved.
1+
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

4+
#nullable enable
5+
46
using System;
57
using System.Collections.Generic;
68
using Microsoft.AspNetCore.Http;
@@ -18,19 +20,14 @@ public sealed class DataTokensMetadata : IDataTokensMetadata
1820
/// Constructor for a new <see cref="DataTokensMetadata"/> given <paramref name="dataTokens"/>.
1921
/// </summary>
2022
/// <param name="dataTokens">The data tokens.</param>
21-
public DataTokensMetadata(IReadOnlyDictionary<string, object> dataTokens)
23+
public DataTokensMetadata(IReadOnlyDictionary<string, object?> dataTokens)
2224
{
23-
if (dataTokens == null)
24-
{
25-
throw new ArgumentNullException(nameof(dataTokens));
26-
}
27-
28-
DataTokens = dataTokens;
25+
DataTokens = dataTokens ?? throw new ArgumentNullException(nameof(dataTokens));
2926
}
3027

3128
/// <summary>
3229
/// Get the data tokens.
3330
/// </summary>
34-
public IReadOnlyDictionary<string, object> DataTokens { get; }
31+
public IReadOnlyDictionary<string, object?> DataTokens { get; }
3532
}
3633
}

src/Http/Routing/src/DefaultLinkGenerator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ public DefaultLinkGenerator(
157157
public override string? GetUriByAddress<TAddress>(
158158
TAddress address,
159159
RouteValueDictionary values,
160-
string scheme,
160+
string? scheme,
161161
HostString host,
162162
PathString pathBase = default,
163163
FragmentString fragment = default,
@@ -335,7 +335,7 @@ public void Dispose()
335335
_cache.Dispose();
336336
}
337337

338-
#nullable disable
338+
#nullable disable
339339
private static class Log
340340
{
341341
public static class EventIds

src/Http/Routing/src/IDataTokenMetadata.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) .NET Foundation. All rights reserved.
1+
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

44
using System.Collections.Generic;
@@ -16,6 +16,6 @@ public interface IDataTokensMetadata
1616
/// <summary>
1717
/// Get the data tokens.
1818
/// </summary>
19-
IReadOnlyDictionary<string, object> DataTokens { get; }
19+
IReadOnlyDictionary<string, object?> DataTokens { get; }
2020
}
2121
}

src/Http/Routing/src/IRouteNameMetadata.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) .NET Foundation. All rights reserved.
1+
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

44
namespace Microsoft.AspNetCore.Routing
@@ -10,8 +10,8 @@ namespace Microsoft.AspNetCore.Routing
1010
public interface IRouteNameMetadata
1111
{
1212
/// <summary>
13-
/// Gets the route name. Can be null.
13+
/// Gets the route name. Can be <see langword="null"/>.
1414
/// </summary>
15-
string RouteName { get; }
15+
string? RouteName { get; }
1616
}
1717
}

src/Http/Routing/src/Matching/DataSourceDependentMatcher.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

4+
#nullable enable
5+
46
using System;
57
using System.Collections.Generic;
68
using System.Threading.Tasks;
@@ -29,7 +31,7 @@ public DataSourceDependentMatcher(
2931
}
3032

3133
// Used in tests
32-
internal Matcher CurrentMatcher => _cache.Value;
34+
internal Matcher CurrentMatcher => _cache.Value!;
3335

3436
public override Task MatchAsync(HttpContext httpContext)
3537
{

src/Http/Routing/src/PublicAPI.Shipped.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ Microsoft.AspNetCore.Routing.Constraints.StringRouteConstraint
9595
Microsoft.AspNetCore.Routing.Constraints.StringRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool
9696
Microsoft.AspNetCore.Routing.Constraints.StringRouteConstraint.StringRouteConstraint(string! value) -> void
9797
Microsoft.AspNetCore.Routing.DataTokensMetadata
98-
Microsoft.AspNetCore.Routing.DataTokensMetadata.DataTokens.get -> System.Collections.Generic.IReadOnlyDictionary<string!, object!>!
99-
Microsoft.AspNetCore.Routing.DataTokensMetadata.DataTokensMetadata(System.Collections.Generic.IReadOnlyDictionary<string!, object!>! dataTokens) -> void
98+
Microsoft.AspNetCore.Routing.DataTokensMetadata.DataTokens.get -> System.Collections.Generic.IReadOnlyDictionary<string!, object?>!
99+
Microsoft.AspNetCore.Routing.DataTokensMetadata.DataTokensMetadata(System.Collections.Generic.IReadOnlyDictionary<string!, object?>! dataTokens) -> void
100100
Microsoft.AspNetCore.Routing.DefaultEndpointDataSource
101101
Microsoft.AspNetCore.Routing.DefaultEndpointDataSource.DefaultEndpointDataSource(System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Http.Endpoint!>! endpoints) -> void
102102
Microsoft.AspNetCore.Routing.DefaultEndpointDataSource.DefaultEndpointDataSource(params Microsoft.AspNetCore.Http.Endpoint![]! endpoints) -> void
@@ -116,7 +116,7 @@ Microsoft.AspNetCore.Routing.HttpMethodMetadata.HttpMethodMetadata(System.Collec
116116
Microsoft.AspNetCore.Routing.HttpMethodMetadata.HttpMethodMetadata(System.Collections.Generic.IEnumerable<string!>! httpMethods, bool acceptCorsPreflight) -> void
117117
Microsoft.AspNetCore.Routing.HttpMethodMetadata.HttpMethods.get -> System.Collections.Generic.IReadOnlyList<string!>!
118118
Microsoft.AspNetCore.Routing.IDataTokensMetadata
119-
Microsoft.AspNetCore.Routing.IDataTokensMetadata.DataTokens.get -> System.Collections.Generic.IReadOnlyDictionary<string!, object!>!
119+
Microsoft.AspNetCore.Routing.IDataTokensMetadata.DataTokens.get -> System.Collections.Generic.IReadOnlyDictionary<string!, object?>!
120120
Microsoft.AspNetCore.Routing.IDynamicEndpointMetadata
121121
Microsoft.AspNetCore.Routing.IDynamicEndpointMetadata.IsDynamic.get -> bool
122122
Microsoft.AspNetCore.Routing.IEndpointAddressScheme<TAddress>
@@ -146,7 +146,7 @@ Microsoft.AspNetCore.Routing.IRouteBuilder.ServiceProvider.get -> System.IServic
146146
Microsoft.AspNetCore.Routing.IRouteCollection
147147
Microsoft.AspNetCore.Routing.IRouteCollection.Add(Microsoft.AspNetCore.Routing.IRouter! router) -> void
148148
Microsoft.AspNetCore.Routing.IRouteNameMetadata
149-
Microsoft.AspNetCore.Routing.IRouteNameMetadata.RouteName.get -> string!
149+
Microsoft.AspNetCore.Routing.IRouteNameMetadata.RouteName.get -> string?
150150
Microsoft.AspNetCore.Routing.ISuppressLinkGenerationMetadata
151151
Microsoft.AspNetCore.Routing.ISuppressLinkGenerationMetadata.SuppressLinkGeneration.get -> bool
152152
Microsoft.AspNetCore.Routing.ISuppressMatchingMetadata
@@ -309,8 +309,8 @@ Microsoft.AspNetCore.Routing.RouteHandler.GetVirtualPath(Microsoft.AspNetCore.Ro
309309
Microsoft.AspNetCore.Routing.RouteHandler.RouteAsync(Microsoft.AspNetCore.Routing.RouteContext! context) -> System.Threading.Tasks.Task!
310310
Microsoft.AspNetCore.Routing.RouteHandler.RouteHandler(Microsoft.AspNetCore.Http.RequestDelegate! requestDelegate) -> void
311311
Microsoft.AspNetCore.Routing.RouteNameMetadata
312-
Microsoft.AspNetCore.Routing.RouteNameMetadata.RouteName.get -> string!
313-
Microsoft.AspNetCore.Routing.RouteNameMetadata.RouteNameMetadata(string! routeName) -> void
312+
Microsoft.AspNetCore.Routing.RouteNameMetadata.RouteName.get -> string?
313+
Microsoft.AspNetCore.Routing.RouteNameMetadata.RouteNameMetadata(string? routeName) -> void
314314
Microsoft.AspNetCore.Routing.RouteOptions
315315
Microsoft.AspNetCore.Routing.RouteOptions.AppendTrailingSlash.get -> bool
316316
Microsoft.AspNetCore.Routing.RouteOptions.AppendTrailingSlash.set -> void

0 commit comments

Comments
 (0)