Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/aspnetcore.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSafia Abdalla <safia@microsoft.com>2022-09-16 02:14:20 +0300
committerSafia Abdalla <safia@microsoft.com>2022-09-16 02:14:20 +0300
commitac3daddc911a094a110c1ad89d46561a2671f5bb (patch)
treefd24e5c9aeea758e4b8d922e8a0113105e83a40c
parent5b84d4cdd4a292acca5ed1b92440bb9f19100f5f (diff)
Only add MethodInfo to route handler endpointssafia/44005
-rw-r--r--src/Http/Routing/src/RouteEndpointDataSource.cs6
-rw-r--r--src/Http/Routing/test/UnitTests/Builder/RequestDelegateEndpointRouteBuilderExtensionsTest.cs16
2 files changed, 12 insertions, 10 deletions
diff --git a/src/Http/Routing/src/RouteEndpointDataSource.cs b/src/Http/Routing/src/RouteEndpointDataSource.cs
index 7e38da886c..2e39cd81ef 100644
--- a/src/Http/Routing/src/RouteEndpointDataSource.cs
+++ b/src/Http/Routing/src/RouteEndpointDataSource.cs
@@ -168,9 +168,13 @@ internal sealed class RouteEndpointDataSource : EndpointDataSource
{
DisplayName = displayName,
ApplicationServices = _applicationServices,
- Metadata = { handler.Method },
};
+ if (isRouteHandler)
+ {
+ builder.Metadata.Add(handler.Method);
+ }
+
if (entry.HttpMethods is not null)
{
builder.Metadata.Add(new HttpMethodMetadata(entry.HttpMethods));
diff --git a/src/Http/Routing/test/UnitTests/Builder/RequestDelegateEndpointRouteBuilderExtensionsTest.cs b/src/Http/Routing/test/UnitTests/Builder/RequestDelegateEndpointRouteBuilderExtensionsTest.cs
index c58a14ed42..0c693a01a2 100644
--- a/src/Http/Routing/test/UnitTests/Builder/RequestDelegateEndpointRouteBuilderExtensionsTest.cs
+++ b/src/Http/Routing/test/UnitTests/Builder/RequestDelegateEndpointRouteBuilderExtensionsTest.cs
@@ -190,10 +190,9 @@ public class RequestDelegateEndpointRouteBuilderExtensionsTest
// Assert
var endpointBuilder1 = GetRouteEndpointBuilder(builder);
Assert.Equal("/", endpointBuilder1.RoutePattern.RawText);
- Assert.Equal(3, endpointBuilder1.Metadata.Count);
- Assert.Equal(((RequestDelegate)Handle).Method, endpointBuilder1.Metadata[0]);
- Assert.IsType<Attribute1>(endpointBuilder1.Metadata[1]);
- Assert.IsType<Attribute2>(endpointBuilder1.Metadata[2]);
+ Assert.Equal(2, endpointBuilder1.Metadata.Count);
+ Assert.IsType<Attribute1>(endpointBuilder1.Metadata[0]);
+ Assert.IsType<Attribute2>(endpointBuilder1.Metadata[1]);
}
[Fact]
@@ -228,11 +227,10 @@ public class RequestDelegateEndpointRouteBuilderExtensionsTest
// As with the Delegate Map method overloads for route handlers, the attributes on the RequestDelegate
// can override the HttpMethodMetadata. Extension methods could already do this.
- Assert.Equal(4, endpoint.Metadata.Count);
- Assert.Equal(((RequestDelegate)HandleHttpMetdata).Method, endpoint.Metadata[0]);
- Assert.Equal("METHOD", GetMethod(endpoint.Metadata[1]));
- Assert.Equal("ATTRIBUTE", GetMethod(endpoint.Metadata[2]));
- Assert.Equal("BUILDER", GetMethod(endpoint.Metadata[3]));
+ Assert.Equal(3, endpoint.Metadata.Count);
+ Assert.Equal("METHOD", GetMethod(endpoint.Metadata[0]));
+ Assert.Equal("ATTRIBUTE", GetMethod(endpoint.Metadata[1]));
+ Assert.Equal("BUILDER", GetMethod(endpoint.Metadata[2]));
Assert.Equal("BUILDER", endpoint.Metadata.GetMetadata<IHttpMethodMetadata>()?.HttpMethods.Single());