diff --git a/src/Http/Http.Extensions/gen/RequestDelegateGenerator.cs b/src/Http/Http.Extensions/gen/RequestDelegateGenerator.cs index 9b904e9d12dc..2303f56f349b 100644 --- a/src/Http/Http.Extensions/gen/RequestDelegateGenerator.cs +++ b/src/Http/Http.Extensions/gen/RequestDelegateGenerator.cs @@ -132,6 +132,7 @@ public void Initialize(IncrementalGeneratorInitializationContext context) codeWriter.WriteLine("var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty;"); codeWriter.WriteLine("return new RequestDelegateResult(targetDelegate, metadata);"); codeWriter.EndBlockWithSemicolon(); + codeWriter.WriteLine($"var castHandler = Cast(handler, {endpoint.EmitHandlerDelegateType()} => throw null!);"); codeWriter.WriteLine("return MapCore("); codeWriter.Indent++; codeWriter.WriteLine("endpoints,"); @@ -148,7 +149,8 @@ public void Initialize(IncrementalGeneratorInitializationContext context) codeWriter.WriteLine("handler,"); codeWriter.WriteLine($"{endpoint.EmitVerb()},"); codeWriter.WriteLine("populateMetadata,"); - codeWriter.WriteLine("createRequestDelegate);"); + codeWriter.WriteLine("createRequestDelegate,"); + codeWriter.WriteLine("castHandler.Method);"); codeWriter.Indent--; codeWriter.EndBlock(); return stringWriter.ToString(); @@ -271,7 +273,7 @@ public void Initialize(IncrementalGeneratorInitializationContext context) return; } using var stringWriter = new StringWriter(CultureInfo.InvariantCulture); - using var codeWriter = new CodeWriter(stringWriter, baseIndent: 2); + using var codeWriter = new CodeWriter(stringWriter, baseIndent: 0); foreach (var endpoint in endpointsCode) { codeWriter.WriteLine(endpoint); diff --git a/src/Http/Http.Extensions/gen/RequestDelegateGeneratorSources.cs b/src/Http/Http.Extensions/gen/RequestDelegateGeneratorSources.cs index b9dbc360e8c2..938295bcc236 100644 --- a/src/Http/Http.Extensions/gen/RequestDelegateGeneratorSources.cs +++ b/src/Http/Http.Extensions/gen/RequestDelegateGeneratorSources.cs @@ -513,8 +513,8 @@ namespace Microsoft.AspNetCore.Http.Generated file static class GeneratedRouteBuilderExtensionsCore { private static readonly JsonOptions FallbackJsonOptions = new(); - {{GetVerbs(verbs)}} - {{endpoints}} +{{GetVerbs(verbs)}} +{{endpoints}} internal static RouteHandlerBuilder MapCore( this IEndpointRouteBuilder routes, @@ -522,9 +522,10 @@ internal static RouteHandlerBuilder MapCore( Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/gen/StaticRouteHandlerModel/StaticRouteHandlerModel.Emitter.cs b/src/Http/Http.Extensions/gen/StaticRouteHandlerModel/StaticRouteHandlerModel.Emitter.cs index 83370eb478f0..c7c4619d6939 100644 --- a/src/Http/Http.Extensions/gen/StaticRouteHandlerModel/StaticRouteHandlerModel.Emitter.cs +++ b/src/Http/Http.Extensions/gen/StaticRouteHandlerModel/StaticRouteHandlerModel.Emitter.cs @@ -72,7 +72,7 @@ public static void EmitRequestHandler(this Endpoint endpoint, CodeWriter codeWri if (endpoint.Parameters.Length > 0) { - codeWriter.WriteLine(endpoint.Parameters.EmitParameterPreparation(endpoint.EmitterContext, codeWriter.Indent)); + codeWriter.WriteLineNoTabs(endpoint.Parameters.EmitParameterPreparation(endpoint.EmitterContext, codeWriter.Indent)); } codeWriter.WriteLine("if (wasParamCheckFailure)"); @@ -182,7 +182,7 @@ public static void EmitFilteredRequestHandler(this Endpoint endpoint, CodeWriter if (endpoint.Parameters.Length > 0) { - codeWriter.WriteLine(endpoint.Parameters.EmitParameterPreparation(endpoint.EmitterContext, codeWriter.Indent)); + codeWriter.WriteLineNoTabs(endpoint.Parameters.EmitParameterPreparation(endpoint.EmitterContext, codeWriter.Indent)); } codeWriter.WriteLine("if (wasParamCheckFailure)"); diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/HandlesEndpointsWithAndWithoutDiagnostics.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/HandlesEndpointsWithAndWithoutDiagnostics.generated.txt index a0388c6ec126..c6080ebb724b 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/HandlesEndpointsWithAndWithoutDiagnostics.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/HandlesEndpointsWithAndWithoutDiagnostics.generated.txt @@ -138,13 +138,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String () => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -155,9 +157,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_BindAsync_NullableReturn.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_BindAsync_NullableReturn.generated.txt index b1c3eef49159..b7207090486c 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_BindAsync_NullableReturn.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_BindAsync_NullableReturn.generated.txt @@ -157,13 +157,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.Generators.Tests.BindableClassWithNullReturn? arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 29, 5)] @@ -265,13 +267,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.Generators.Tests.BindableStructWithNullReturn arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -282,9 +286,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_BindAsync_Snapshot.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_BindAsync_Snapshot.generated.txt index 943c1e977de4..ddd072a97531 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_BindAsync_Snapshot.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_BindAsync_Snapshot.generated.txt @@ -158,13 +158,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.HttpContext arg0, global::Microsoft.AspNetCore.Http.Generators.Tests.MyBindAsyncRecord? arg1) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 27, 5)] @@ -253,13 +255,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.Generators.Tests.MyBindAsyncRecord? arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 28, 5)] @@ -350,13 +354,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.HttpContext arg0, global::Microsoft.AspNetCore.Http.Generators.Tests.MyBindAsyncStruct arg1) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 29, 5)] @@ -445,13 +451,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.Generators.Tests.MyBindAsyncStruct? arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 30, 5)] @@ -554,13 +562,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.HttpContext arg0, global::Microsoft.AspNetCore.Http.Generators.Tests.MyNullableBindAsyncStruct arg1) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 31, 5)] @@ -649,13 +659,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.Generators.Tests.MyNullableBindAsyncStruct? arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 32, 5)] @@ -746,13 +758,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.HttpContext arg0, global::Microsoft.AspNetCore.Http.Generators.Tests.MyBothBindAsyncStruct arg1) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 33, 5)] @@ -841,13 +855,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.Generators.Tests.MyBothBindAsyncStruct? arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 34, 5)] @@ -949,13 +965,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.HttpContext arg0, global::Microsoft.AspNetCore.Http.Generators.Tests.MySimpleBindAsyncRecord? arg1) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 35, 5)] @@ -1043,13 +1061,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.Generators.Tests.MySimpleBindAsyncRecord? arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 36, 5)] @@ -1139,13 +1159,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.HttpContext arg0, global::Microsoft.AspNetCore.Http.Generators.Tests.MySimpleBindAsyncStruct arg1) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 37, 5)] @@ -1233,13 +1255,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.Generators.Tests.MySimpleBindAsyncStruct? arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 38, 5)] @@ -1342,13 +1366,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.HttpContext arg0, global::Microsoft.AspNetCore.Http.Generators.Tests.BindAsyncFromImplicitStaticAbstractInterface arg1) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 39, 5)] @@ -1437,13 +1463,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.Generators.Tests.BindAsyncFromImplicitStaticAbstractInterface? arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 40, 5)] @@ -1545,13 +1573,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.HttpContext arg0, global::Microsoft.AspNetCore.Http.Generators.Tests.InheritBindAsync? arg1) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 41, 5)] @@ -1639,13 +1669,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.Generators.Tests.InheritBindAsync? arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 42, 5)] @@ -1748,13 +1780,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.HttpContext arg0, global::Microsoft.AspNetCore.Http.Generators.Tests.BindAsyncFromExplicitStaticAbstractInterface arg1) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 43, 5)] @@ -1843,13 +1877,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.Generators.Tests.BindAsyncFromExplicitStaticAbstractInterface? arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 44, 5)] @@ -1951,13 +1987,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.HttpContext arg0, global::Microsoft.AspNetCore.Http.Generators.Tests.MyBindAsyncFromInterfaceRecord? arg1) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 45, 5)] @@ -2045,13 +2083,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.Generators.Tests.MyBindAsyncFromInterfaceRecord? arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -2062,9 +2102,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitBodyParam_ComplexReturn_Snapshot.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitBodyParam_ComplexReturn_Snapshot.generated.txt index 23b91e77db28..d2dd86d97efb 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitBodyParam_ComplexReturn_Snapshot.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitBodyParam_ComplexReturn_Snapshot.generated.txt @@ -153,13 +153,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::Microsoft.AspNetCore.Http.HttpResults.Ok (global::Microsoft.AspNetCore.Http.Generators.Tests.Todo arg0) => throw null!); return MapCore( endpoints, pattern, handler, PostVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 27, 5)] @@ -257,13 +259,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::Microsoft.AspNetCore.Http.HttpResults.Ok (global::Microsoft.AspNetCore.Http.Generators.Tests.Todo? arg0) => throw null!); return MapCore( endpoints, pattern, handler, PostVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -274,9 +278,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitHeader_ComplexTypeArrayParam.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitHeader_ComplexTypeArrayParam.generated.txt index 8e2fff14a8c5..bc613729415b 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitHeader_ComplexTypeArrayParam.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitHeader_ComplexTypeArrayParam.generated.txt @@ -168,13 +168,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.Int32 (global::Microsoft.AspNetCore.Http.Generators.Tests.ParsableTodo[] arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -185,9 +187,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitHeader_NullableStringArrayParam.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitHeader_NullableStringArrayParam.generated.txt index de264d352b6c..84797133fa2d 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitHeader_NullableStringArrayParam.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitHeader_NullableStringArrayParam.generated.txt @@ -142,13 +142,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.Int32 (global::System.String?[] arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -159,9 +161,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitHeader_StringArrayParam.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitHeader_StringArrayParam.generated.txt index 585b37885505..b6676d247b0b 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitHeader_StringArrayParam.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitHeader_StringArrayParam.generated.txt @@ -142,13 +142,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.Int32 (global::System.String[] arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -159,9 +161,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitQuery_ComplexTypeArrayParam.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitQuery_ComplexTypeArrayParam.generated.txt index 4cea661b4f8a..d8af45f2f72a 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitQuery_ComplexTypeArrayParam.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitQuery_ComplexTypeArrayParam.generated.txt @@ -168,13 +168,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.Int32 (global::Microsoft.AspNetCore.Http.Generators.Tests.ParsableTodo[] arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -185,9 +187,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitQuery_NullableStringArrayParam.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitQuery_NullableStringArrayParam.generated.txt index d699063ef30b..19fff142b353 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitQuery_NullableStringArrayParam.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitQuery_NullableStringArrayParam.generated.txt @@ -141,13 +141,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.Int32 (global::System.String?[] arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -158,9 +160,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitQuery_StringArrayParam.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitQuery_StringArrayParam.generated.txt index 60588b1eecb5..eae2d352043f 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitQuery_StringArrayParam.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitQuery_StringArrayParam.generated.txt @@ -141,13 +141,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.Int32 (global::System.String[] arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -158,9 +160,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitServiceParam_SimpleReturn_Snapshot.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitServiceParam_SimpleReturn_Snapshot.generated.txt index 95956a2565fa..01ebcc756f88 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitServiceParam_SimpleReturn_Snapshot.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitServiceParam_SimpleReturn_Snapshot.generated.txt @@ -145,13 +145,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.Generators.Tests.TestService arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 27, 5)] @@ -241,13 +243,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::System.Collections.Generic.IEnumerable arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 28, 5)] @@ -341,13 +345,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.Generators.Tests.TestService? arg0, global::System.Collections.Generic.IEnumerable arg1) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -358,9 +364,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitSource_SimpleReturn_Snapshot.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitSource_SimpleReturn_Snapshot.generated.txt index d3546f2a8f18..53b73e0b9c80 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitSource_SimpleReturn_Snapshot.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ExplicitSource_SimpleReturn_Snapshot.generated.txt @@ -159,13 +159,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::System.String arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 27, 5)] @@ -269,13 +271,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::System.String arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 28, 5)] @@ -387,13 +391,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::System.String arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 29, 5)] @@ -499,13 +505,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::System.String arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -516,9 +524,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_ComplexTypeArrayParam.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_ComplexTypeArrayParam.generated.txt index b0a1f6106320..11bb18fa442f 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_ComplexTypeArrayParam.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_ComplexTypeArrayParam.generated.txt @@ -169,13 +169,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.Int32 (global::Microsoft.AspNetCore.Http.Generators.Tests.ParsableTodo[] arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -186,9 +188,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_NullableStringArrayParam.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_NullableStringArrayParam.generated.txt index 5ff3cffa0d7e..c1b5d54296e6 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_NullableStringArrayParam.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_NullableStringArrayParam.generated.txt @@ -183,13 +183,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.Int32 (global::System.String?[] arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -200,9 +202,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_NullableStringArrayParam_EmptyQueryValues.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_NullableStringArrayParam_EmptyQueryValues.generated.txt index 5ff3cffa0d7e..c1b5d54296e6 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_NullableStringArrayParam_EmptyQueryValues.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_NullableStringArrayParam_EmptyQueryValues.generated.txt @@ -183,13 +183,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.Int32 (global::System.String?[] arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -200,9 +202,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_NullableStringArrayParam_QueryNotPresent.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_NullableStringArrayParam_QueryNotPresent.generated.txt index 5ff3cffa0d7e..c1b5d54296e6 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_NullableStringArrayParam_QueryNotPresent.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_NullableStringArrayParam_QueryNotPresent.generated.txt @@ -183,13 +183,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.Int32 (global::System.String?[] arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -200,9 +202,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_StringArrayParam.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_StringArrayParam.generated.txt index 0412984e2f57..37e0b8e02588 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_StringArrayParam.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ImplicitQuery_StringArrayParam.generated.txt @@ -183,13 +183,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.Int32 (global::System.String[] arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -200,9 +202,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_JsonBodyOrService_HandlesBothJsonAndService.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_JsonBodyOrService_HandlesBothJsonAndService.generated.txt index 8bb363809350..45c7af813c21 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_JsonBodyOrService_HandlesBothJsonAndService.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_JsonBodyOrService_HandlesBothJsonAndService.generated.txt @@ -188,13 +188,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.Generators.Tests.Todo arg0, global::Microsoft.AspNetCore.Http.Generators.Tests.TestService arg1) => throw null!); return MapCore( endpoints, pattern, handler, PostVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -205,9 +207,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_MultipleSpecialTypeParam_StringReturn.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_MultipleSpecialTypeParam_StringReturn.generated.txt index 8d118812dce3..ffbfa4c5c056 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_MultipleSpecialTypeParam_StringReturn.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_MultipleSpecialTypeParam_StringReturn.generated.txt @@ -144,13 +144,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.HttpRequest arg0, global::Microsoft.AspNetCore.Http.HttpResponse arg1) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -161,9 +163,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_MultipleStringParam_StringReturn.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_MultipleStringParam_StringReturn.generated.txt index e2c50e8d5d0e..3f81e20cda56 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_MultipleStringParam_StringReturn.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_MultipleStringParam_StringReturn.generated.txt @@ -177,13 +177,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::System.String arg0, global::System.String arg1) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -194,9 +196,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_NoParam_StringReturn_WithFilter.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_NoParam_StringReturn_WithFilter.generated.txt index a9790eec67d3..fd03833882fe 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_NoParam_StringReturn_WithFilter.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_NoParam_StringReturn_WithFilter.generated.txt @@ -138,13 +138,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String () => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -155,9 +157,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ReturnsString_Has_Metadata.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ReturnsString_Has_Metadata.generated.txt index a9790eec67d3..fd03833882fe 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ReturnsString_Has_Metadata.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ReturnsString_Has_Metadata.generated.txt @@ -138,13 +138,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String () => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -155,9 +157,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ReturnsTodo_Has_Metadata.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ReturnsTodo_Has_Metadata.generated.txt index 77f4ad1b9b71..b72515bda258 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ReturnsTodo_Has_Metadata.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ReturnsTodo_Has_Metadata.generated.txt @@ -131,13 +131,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::Microsoft.AspNetCore.Http.Generators.Tests.Todo () => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -148,9 +150,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ReturnsValidationProblemResult_Has_Metadata.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ReturnsValidationProblemResult_Has_Metadata.generated.txt index b114fa5cb7bd..8538fbb64f53 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ReturnsValidationProblemResult_Has_Metadata.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ReturnsValidationProblemResult_Has_Metadata.generated.txt @@ -134,13 +134,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::Microsoft.AspNetCore.Http.HttpResults.ValidationProblem () => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -151,9 +153,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ReturnsVoid_Has_No_Metadata.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ReturnsVoid_Has_No_Metadata.generated.txt index bbbc9e724b1e..dcf82f5b2383 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ReturnsVoid_Has_No_Metadata.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_ReturnsVoid_Has_No_Metadata.generated.txt @@ -130,13 +130,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, void () => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -147,9 +149,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_SingleComplexTypeParam_StringReturn.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_SingleComplexTypeParam_StringReturn.generated.txt index e566e6822dbe..77fdb23a6685 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_SingleComplexTypeParam_StringReturn.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_SingleComplexTypeParam_StringReturn.generated.txt @@ -175,13 +175,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.Generators.Tests.TryParseTodo arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -192,9 +194,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_SingleEnumParam_StringReturn.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_SingleEnumParam_StringReturn.generated.txt index d4414a8b1217..a0a7ef4ff87f 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_SingleEnumParam_StringReturn.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_SingleEnumParam_StringReturn.generated.txt @@ -175,13 +175,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.Generators.Tests.TodoStatus arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -192,9 +194,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_SingleNullableStringParam_WithEmptyQueryStringValueProvided_StringReturn.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_SingleNullableStringParam_WithEmptyQueryStringValueProvided_StringReturn.generated.txt index 81e8c9156b87..427a4583320a 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_SingleNullableStringParam_WithEmptyQueryStringValueProvided_StringReturn.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_SingleNullableStringParam_WithEmptyQueryStringValueProvided_StringReturn.generated.txt @@ -149,13 +149,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::System.String? arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -166,9 +168,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_TakesCustomMetadataEmitter_Has_Metadata.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_TakesCustomMetadataEmitter_Has_Metadata.generated.txt index 59a9a44f5b4f..a8347fe82216 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_TakesCustomMetadataEmitter_Has_Metadata.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapAction_TakesCustomMetadataEmitter_Has_Metadata.generated.txt @@ -167,13 +167,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, void (global::Microsoft.AspNetCore.Http.Generators.Tests.CustomMetadataEmitter arg0) => throw null!); return MapCore( endpoints, pattern, handler, PostVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -184,9 +186,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapMethods_Get_WithArrayQueryString_AndBody_ShouldUseQueryString.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapMethods_Get_WithArrayQueryString_AndBody_ShouldUseQueryString.generated.txt index 1bd7a2eaadbc..a5f52d7c7abb 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapMethods_Get_WithArrayQueryString_AndBody_ShouldUseQueryString.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapMethods_Get_WithArrayQueryString_AndBody_ShouldUseQueryString.generated.txt @@ -190,13 +190,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::System.String[] arg0) => throw null!); return MapCore( endpoints, pattern, handler, httpMethods, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -207,9 +209,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapMethods_PostAndGet_WithArrayQueryString_AndBody_ShouldUseQueryString.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapMethods_PostAndGet_WithArrayQueryString_AndBody_ShouldUseQueryString.generated.txt index 1bd7a2eaadbc..a5f52d7c7abb 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapMethods_PostAndGet_WithArrayQueryString_AndBody_ShouldUseQueryString.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapMethods_PostAndGet_WithArrayQueryString_AndBody_ShouldUseQueryString.generated.txt @@ -190,13 +190,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::System.String[] arg0) => throw null!); return MapCore( endpoints, pattern, handler, httpMethods, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -207,9 +209,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapMethods_PostAndPut_WithArrayQueryString_AndBody_ShouldUseBody.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapMethods_PostAndPut_WithArrayQueryString_AndBody_ShouldUseBody.generated.txt index 1bd7a2eaadbc..a5f52d7c7abb 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapMethods_PostAndPut_WithArrayQueryString_AndBody_ShouldUseBody.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapMethods_PostAndPut_WithArrayQueryString_AndBody_ShouldUseBody.generated.txt @@ -190,13 +190,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::System.String[] arg0) => throw null!); return MapCore( endpoints, pattern, handler, httpMethods, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -207,9 +209,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapMethods_Post_WithArrayQueryString_AndBody_ShouldUseBody.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapMethods_Post_WithArrayQueryString_AndBody_ShouldUseBody.generated.txt index 1bd7a2eaadbc..a5f52d7c7abb 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapMethods_Post_WithArrayQueryString_AndBody_ShouldUseBody.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapMethods_Post_WithArrayQueryString_AndBody_ShouldUseBody.generated.txt @@ -190,13 +190,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::System.String[] arg0) => throw null!); return MapCore( endpoints, pattern, handler, httpMethods, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -207,9 +209,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapPost_WithArrayQueryString_AndBody_ShouldUseBody.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapPost_WithArrayQueryString_AndBody_ShouldUseBody.generated.txt index c859c601dfe1..edc3fba115df 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapPost_WithArrayQueryString_AndBody_ShouldUseBody.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapPost_WithArrayQueryString_AndBody_ShouldUseBody.generated.txt @@ -190,13 +190,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::System.String[] arg0) => throw null!); return MapCore( endpoints, pattern, handler, PostVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -207,9 +209,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapPost_WithArrayQueryString_ShouldFail.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapPost_WithArrayQueryString_ShouldFail.generated.txt index a89c77286150..edc08f6ef942 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapPost_WithArrayQueryString_ShouldFail.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/MapPost_WithArrayQueryString_ShouldFail.generated.txt @@ -183,13 +183,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.Int32 (global::System.String[] arg0) => throw null!); return MapCore( endpoints, pattern, handler, PostVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -200,9 +202,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/Multiple_MapAction_NoParam_StringReturn.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/Multiple_MapAction_NoParam_StringReturn.generated.txt index 3637cd7aba0d..3cc8a856676d 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/Multiple_MapAction_NoParam_StringReturn.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/Multiple_MapAction_NoParam_StringReturn.generated.txt @@ -139,13 +139,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String () => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 28, 5)] @@ -231,13 +233,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.Threading.Tasks.Task () => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 29, 5)] @@ -323,13 +327,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.Threading.Tasks.ValueTask () => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -340,9 +346,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/Multiple_MapAction_WithParams_StringReturn.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/Multiple_MapAction_WithParams_StringReturn.generated.txt index 5232ed8d5f0e..18b22249af90 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/Multiple_MapAction_WithParams_StringReturn.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/Multiple_MapAction_WithParams_StringReturn.generated.txt @@ -142,13 +142,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.HttpRequest arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 27, 5)] @@ -235,13 +237,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.HttpResponse arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 28, 5)] @@ -330,13 +334,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.HttpRequest arg0, global::Microsoft.AspNetCore.Http.HttpResponse arg1) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -347,9 +353,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/RequestDelegateValidateGeneratedFormCode.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/RequestDelegateValidateGeneratedFormCode.generated.txt index f1ed3e6ca32b..6189b82cdb7a 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/RequestDelegateValidateGeneratedFormCode.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/RequestDelegateValidateGeneratedFormCode.generated.txt @@ -234,13 +234,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, void (global::Microsoft.AspNetCore.Http.HttpContext arg0, global::Microsoft.AspNetCore.Http.IFormFile arg1, global::Microsoft.AspNetCore.Http.IFormFileCollection arg2, global::Microsoft.AspNetCore.Http.IFormCollection arg3, global::Microsoft.AspNetCore.Http.Generators.Tests.MyTryParseRecord arg4) => throw null!); return MapCore( endpoints, pattern, handler, PostVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -251,9 +253,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/SupportsDifferentInterceptorsFromSameLocation.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/SupportsDifferentInterceptorsFromSameLocation.generated.txt index 913b5a01b0d3..35d365b76b87 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/SupportsDifferentInterceptorsFromSameLocation.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/SupportsDifferentInterceptorsFromSameLocation.generated.txt @@ -160,13 +160,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::System.String arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"OtherTestMapActions.cs", 26, 13)] @@ -287,13 +289,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::System.Int32 arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -304,9 +308,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/SupportsSameInterceptorsFromDifferentFiles.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/SupportsSameInterceptorsFromDifferentFiles.generated.txt index 27f9fe079efd..38c5fef2af61 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/SupportsSameInterceptorsFromDifferentFiles.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/SupportsSameInterceptorsFromDifferentFiles.generated.txt @@ -162,13 +162,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::System.String arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -179,9 +181,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/VerifyAsParametersBaseline.generated.txt b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/VerifyAsParametersBaseline.generated.txt index b4625d95d881..cde03d3a2376 100644 --- a/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/VerifyAsParametersBaseline.generated.txt +++ b/src/Http/Http.Extensions/test/RequestDelegateGenerator/Baselines/VerifyAsParametersBaseline.generated.txt @@ -108,7 +108,7 @@ namespace Microsoft.AspNetCore.Http.Generated { var wasParamCheckFailure = false; // Endpoint Parameter: args (Type = Microsoft.AspNetCore.Http.Generators.Tests.ParameterListWitDefaultValue, IsOptional = False, IsParsable = False, IsArray = False, Source = AsParameters) - var HttpContext_local = httpContext; + var HttpContext_local = httpContext; // Endpoint Parameter: Value (Type = int, IsOptional = True, IsParsable = True, IsArray = False, Source = Route) if (options?.RouteParameterNames?.Contains("Value", StringComparer.OrdinalIgnoreCase) != true) { @@ -146,7 +146,7 @@ namespace Microsoft.AspNetCore.Http.Generated { var wasParamCheckFailure = false; // Endpoint Parameter: args (Type = Microsoft.AspNetCore.Http.Generators.Tests.ParameterListWitDefaultValue, IsOptional = False, IsParsable = False, IsArray = False, Source = AsParameters) - var HttpContext_local = httpContext; + var HttpContext_local = httpContext; // Endpoint Parameter: Value (Type = int, IsOptional = True, IsParsable = True, IsArray = False, Source = Route) if (options?.RouteParameterNames?.Contains("Value", StringComparer.OrdinalIgnoreCase) != true) { @@ -186,13 +186,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, void (global::Microsoft.AspNetCore.Http.Generators.Tests.ParameterListWitDefaultValue arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 46, 5)] @@ -243,7 +245,7 @@ namespace Microsoft.AspNetCore.Http.Generated { var wasParamCheckFailure = false; // Endpoint Parameter: args (Type = Microsoft.AspNetCore.Http.Generators.Tests.ParameterListRecordStruct, IsOptional = False, IsParsable = False, IsArray = False, Source = AsParameters) - var HttpContext_local = httpContext; + var HttpContext_local = httpContext; // Endpoint Parameter: Value (Type = int, IsOptional = False, IsParsable = True, IsArray = False, Source = RouteOrQuery) var Value_raw = Value_RouteOrQueryResolver(httpContext); if (Value_raw is StringValues { Count: 0 }) @@ -277,7 +279,7 @@ namespace Microsoft.AspNetCore.Http.Generated { var wasParamCheckFailure = false; // Endpoint Parameter: args (Type = Microsoft.AspNetCore.Http.Generators.Tests.ParameterListRecordStruct, IsOptional = False, IsParsable = False, IsArray = False, Source = AsParameters) - var HttpContext_local = httpContext; + var HttpContext_local = httpContext; // Endpoint Parameter: Value (Type = int, IsOptional = False, IsParsable = True, IsArray = False, Source = RouteOrQuery) var Value_raw = Value_RouteOrQueryResolver(httpContext); if (Value_raw is StringValues { Count: 0 }) @@ -313,13 +315,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, void (global::Microsoft.AspNetCore.Http.Generators.Tests.ParameterListRecordStruct arg0) => throw null!); return MapCore( endpoints, pattern, handler, PostVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 47, 5)] @@ -369,7 +373,7 @@ namespace Microsoft.AspNetCore.Http.Generated { var wasParamCheckFailure = false; // Endpoint Parameter: args (Type = Microsoft.AspNetCore.Http.Generators.Tests.ParametersListWithHttpContext, IsOptional = False, IsParsable = False, IsArray = False, Source = AsParameters) - var HttpContext_local = httpContext; + var HttpContext_local = httpContext; var User_local = httpContext.User; var Request_local = httpContext.Request; var Response_local = httpContext.Response; @@ -389,7 +393,7 @@ namespace Microsoft.AspNetCore.Http.Generated { var wasParamCheckFailure = false; // Endpoint Parameter: args (Type = Microsoft.AspNetCore.Http.Generators.Tests.ParametersListWithHttpContext, IsOptional = False, IsParsable = False, IsArray = False, Source = AsParameters) - var HttpContext_local = httpContext; + var HttpContext_local = httpContext; var User_local = httpContext.User; var Request_local = httpContext.Request; var Response_local = httpContext.Response; @@ -411,13 +415,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, void (global::Microsoft.AspNetCore.Http.Generators.Tests.ParametersListWithHttpContext arg0) => throw null!); return MapCore( endpoints, pattern, handler, PutVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 48, 5)] @@ -470,7 +476,7 @@ namespace Microsoft.AspNetCore.Http.Generated { var wasParamCheckFailure = false; // Endpoint Parameter: args (Type = Microsoft.AspNetCore.Http.Generators.Tests.ParametersListWithImplicitFromBody, IsOptional = False, IsParsable = False, IsArray = False, Source = AsParameters) - var HttpContext_local = httpContext; + var HttpContext_local = httpContext; // Endpoint Parameter: Todo (Type = Microsoft.AspNetCore.Http.Generators.Tests.TodoStruct, IsOptional = False, IsParsable = False, IsArray = False, Source = JsonBodyOrService) var Todo_resolveJsonBodyOrServiceResult = await Todo_JsonBodyOrServiceResolver(httpContext, false); if (!Todo_resolveJsonBodyOrServiceResult.Item1) @@ -502,7 +508,7 @@ namespace Microsoft.AspNetCore.Http.Generated { var wasParamCheckFailure = false; // Endpoint Parameter: args (Type = Microsoft.AspNetCore.Http.Generators.Tests.ParametersListWithImplicitFromBody, IsOptional = False, IsParsable = False, IsArray = False, Source = AsParameters) - var HttpContext_local = httpContext; + var HttpContext_local = httpContext; // Endpoint Parameter: Todo (Type = Microsoft.AspNetCore.Http.Generators.Tests.TodoStruct, IsOptional = False, IsParsable = False, IsArray = False, Source = JsonBodyOrService) var Todo_resolveJsonBodyOrServiceResult = await Todo_JsonBodyOrServiceResolver(httpContext, false); if (!Todo_resolveJsonBodyOrServiceResult.Item1) @@ -528,13 +534,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.Generators.Tests.ParametersListWithImplicitFromBody arg0) => throw null!); return MapCore( endpoints, pattern, handler, PatchVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 49, 5)] @@ -591,7 +599,7 @@ namespace Microsoft.AspNetCore.Http.Generated { var wasParamCheckFailure = false; // Endpoint Parameter: args (Type = Microsoft.AspNetCore.Http.Generators.Tests.ParametersListWithMetadataType, IsOptional = False, IsParsable = False, IsArray = False, Source = AsParameters) - var HttpContext_local = httpContext; + var HttpContext_local = httpContext; // Endpoint Parameter: Value (Type = Microsoft.AspNetCore.Http.Generators.Tests.AddsCustomParameterMetadataAsProperty, IsOptional = False, IsParsable = False, IsArray = False, Source = JsonBodyOrService) var Value_resolveJsonBodyOrServiceResult = await Value_JsonBodyOrServiceResolver(httpContext, false); if (!Value_resolveJsonBodyOrServiceResult.Item1) @@ -614,7 +622,7 @@ namespace Microsoft.AspNetCore.Http.Generated { var wasParamCheckFailure = false; // Endpoint Parameter: args (Type = Microsoft.AspNetCore.Http.Generators.Tests.ParametersListWithMetadataType, IsOptional = False, IsParsable = False, IsArray = False, Source = AsParameters) - var HttpContext_local = httpContext; + var HttpContext_local = httpContext; // Endpoint Parameter: Value (Type = Microsoft.AspNetCore.Http.Generators.Tests.AddsCustomParameterMetadataAsProperty, IsOptional = False, IsParsable = False, IsArray = False, Source = JsonBodyOrService) var Value_resolveJsonBodyOrServiceResult = await Value_JsonBodyOrServiceResolver(httpContext, false); if (!Value_resolveJsonBodyOrServiceResult.Item1) @@ -640,13 +648,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, void (global::Microsoft.AspNetCore.Http.Generators.Tests.ParametersListWithMetadataType arg0) => throw null!); return MapCore( endpoints, pattern, handler, GetVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } [InterceptsLocation(@"TestMapActions.cs", 50, 5)] @@ -700,7 +710,7 @@ namespace Microsoft.AspNetCore.Http.Generated { var wasParamCheckFailure = false; // Endpoint Parameter: args (Type = Microsoft.AspNetCore.Http.Generators.Tests.ParameterRecordStructWithJsonBodyOrService, IsOptional = False, IsParsable = False, IsArray = False, Source = AsParameters) - // Endpoint Parameter: Todo (Type = Microsoft.AspNetCore.Http.Generators.Tests.TodoStruct, IsOptional = False, IsParsable = False, IsArray = False, Source = JsonBodyOrService) + // Endpoint Parameter: Todo (Type = Microsoft.AspNetCore.Http.Generators.Tests.TodoStruct, IsOptional = False, IsParsable = False, IsArray = False, Source = JsonBodyOrService) var Todo_resolveJsonBodyOrServiceResult = await Todo_JsonBodyOrServiceResolver(httpContext, false); if (!Todo_resolveJsonBodyOrServiceResult.Item1) { @@ -738,7 +748,7 @@ namespace Microsoft.AspNetCore.Http.Generated { var wasParamCheckFailure = false; // Endpoint Parameter: args (Type = Microsoft.AspNetCore.Http.Generators.Tests.ParameterRecordStructWithJsonBodyOrService, IsOptional = False, IsParsable = False, IsArray = False, Source = AsParameters) - // Endpoint Parameter: Todo (Type = Microsoft.AspNetCore.Http.Generators.Tests.TodoStruct, IsOptional = False, IsParsable = False, IsArray = False, Source = JsonBodyOrService) + // Endpoint Parameter: Todo (Type = Microsoft.AspNetCore.Http.Generators.Tests.TodoStruct, IsOptional = False, IsParsable = False, IsArray = False, Source = JsonBodyOrService) var Todo_resolveJsonBodyOrServiceResult = await Todo_JsonBodyOrServiceResolver(httpContext, false); if (!Todo_resolveJsonBodyOrServiceResult.Item1) { @@ -770,13 +780,15 @@ namespace Microsoft.AspNetCore.Http.Generated var metadata = inferredMetadataResult?.EndpointMetadata ?? ReadOnlyCollection.Empty; return new RequestDelegateResult(targetDelegate, metadata); }; + var castHandler = Cast(handler, global::System.String (global::Microsoft.AspNetCore.Http.Generators.Tests.ParameterRecordStructWithJsonBodyOrService arg0) => throw null!); return MapCore( endpoints, pattern, handler, PostVerb, populateMetadata, - createRequestDelegate); + createRequestDelegate, + castHandler.Method); } @@ -787,9 +799,10 @@ namespace Microsoft.AspNetCore.Http.Generated Delegate handler, IEnumerable? httpMethods, MetadataPopulator populateMetadata, - RequestDelegateFactoryFunc createRequestDelegate) + RequestDelegateFactoryFunc createRequestDelegate, + MethodInfo methodInfo) { - return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate); + return RouteHandlerServices.Map(routes, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, methodInfo); } private static T Cast(Delegate d, T _) where T : Delegate diff --git a/src/Http/Routing/src/Builder/EndpointRouteBuilderExtensions.cs b/src/Http/Routing/src/Builder/EndpointRouteBuilderExtensions.cs index a05c8006992a..aa745b1b9829 100644 --- a/src/Http/Routing/src/Builder/EndpointRouteBuilderExtensions.cs +++ b/src/Http/Routing/src/Builder/EndpointRouteBuilderExtensions.cs @@ -198,7 +198,7 @@ private static IEndpointConventionBuilder Map( return endpoints .GetOrAddRouteEndpointDataSource() - .AddRequestDelegate(pattern, requestDelegate, httpMethods, CreateHandlerRequestDelegate); + .AddRequestDelegate(pattern, requestDelegate, httpMethods, CreateHandlerRequestDelegate, requestDelegate.Method); static RequestDelegateResult CreateHandlerRequestDelegate(Delegate handler, RequestDelegateFactoryOptions options, RequestDelegateMetadataResult? metadataResult) { @@ -436,7 +436,7 @@ private static RouteHandlerBuilder Map( return endpoints .GetOrAddRouteEndpointDataSource() - .AddRouteHandler(pattern, handler, httpMethods, isFallback, RequestDelegateFactory.InferMetadata, RequestDelegateFactory.Create); + .AddRouteHandler(pattern, handler, httpMethods, isFallback, RequestDelegateFactory.InferMetadata, RequestDelegateFactory.Create, handler.Method); } internal static RouteEndpointDataSource GetOrAddRouteEndpointDataSource(this IEndpointRouteBuilder endpoints) diff --git a/src/Http/Routing/src/Builder/RouteHandlerServices.cs b/src/Http/Routing/src/Builder/RouteHandlerServices.cs index f794807bd996..0a11fd782172 100644 --- a/src/Http/Routing/src/Builder/RouteHandlerServices.cs +++ b/src/Http/Routing/src/Builder/RouteHandlerServices.cs @@ -29,7 +29,7 @@ public static class RouteHandlerServices /// The set of supported HTTP methods. /// A delegate for populating endpoint metadata. /// A delegate for constructing a RequestDelegate. - /// + /// The >. public static RouteHandlerBuilder Map( IEndpointRouteBuilder endpoints, string pattern, @@ -44,6 +44,37 @@ public static RouteHandlerBuilder Map( ArgumentNullException.ThrowIfNull(populateMetadata); ArgumentNullException.ThrowIfNull(createRequestDelegate); + return Map(endpoints, pattern, handler, httpMethods, populateMetadata, createRequestDelegate, handler.Method); + } + + /// + /// Registers an endpoint with custom functions for constructing + /// a request delegate for its handler and populating metadata for + /// the endpoint. Intended for consumption in the RequestDelegateGenerator. + /// + /// The to add the route to. + /// The route pattern. + /// The delegate executed when the endpoint is matched. + /// The set of supported HTTP methods. + /// A delegate for populating endpoint metadata. + /// A delegate for constructing a RequestDelegate. + /// The MethodInfo associated with the incoming delegate. + /// The >. + public static RouteHandlerBuilder Map( + IEndpointRouteBuilder endpoints, + string pattern, + Delegate handler, + IEnumerable? httpMethods, + Func populateMetadata, + Func createRequestDelegate, + MethodInfo methodInfo) + { + ArgumentNullException.ThrowIfNull(endpoints); + ArgumentNullException.ThrowIfNull(pattern); + ArgumentNullException.ThrowIfNull(handler); + ArgumentNullException.ThrowIfNull(populateMetadata); + ArgumentNullException.ThrowIfNull(createRequestDelegate); + return endpoints .GetOrAddRouteEndpointDataSource() .AddRouteHandler(RoutePatternFactory.Parse(pattern), @@ -51,6 +82,7 @@ public static RouteHandlerBuilder Map( httpMethods, isFallback: false, populateMetadata, - createRequestDelegate); + createRequestDelegate, + methodInfo); } } diff --git a/src/Http/Routing/src/PublicAPI.Unshipped.txt b/src/Http/Routing/src/PublicAPI.Unshipped.txt index 7dc5c58110bf..3466658aa78d 100644 --- a/src/Http/Routing/src/PublicAPI.Unshipped.txt +++ b/src/Http/Routing/src/PublicAPI.Unshipped.txt @@ -1 +1,2 @@ #nullable enable +static Microsoft.AspNetCore.Routing.RouteHandlerServices.Map(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder! endpoints, string! pattern, System.Delegate! handler, System.Collections.Generic.IEnumerable? httpMethods, System.Func! populateMetadata, System.Func! createRequestDelegate, System.Reflection.MethodInfo! methodInfo) -> Microsoft.AspNetCore.Builder.RouteHandlerBuilder! diff --git a/src/Http/Routing/src/RouteEndpointDataSource.cs b/src/Http/Routing/src/RouteEndpointDataSource.cs index af40b6c1757a..2ed6ff242276 100644 --- a/src/Http/Routing/src/RouteEndpointDataSource.cs +++ b/src/Http/Routing/src/RouteEndpointDataSource.cs @@ -28,7 +28,8 @@ public RouteHandlerBuilder AddRequestDelegate( RoutePattern pattern, RequestDelegate requestDelegate, IEnumerable? httpMethods, - Func createHandlerRequestDelegateFunc) + Func createHandlerRequestDelegateFunc, + MethodInfo methodInfo) { var conventions = new ThrowOnAddAfterEndpointBuiltConventionCollection(); var finallyConventions = new ThrowOnAddAfterEndpointBuiltConventionCollection(); @@ -42,7 +43,8 @@ public RouteHandlerBuilder AddRequestDelegate( Conventions = conventions, FinallyConventions = finallyConventions, InferMetadataFunc = null, // Metadata isn't infered from RequestDelegate endpoints - CreateHandlerRequestDelegateFunc = createHandlerRequestDelegateFunc + CreateHandlerRequestDelegateFunc = createHandlerRequestDelegateFunc, + Method = methodInfo // MethodInfo needed to resolve attributes for RequestDelegate endpoints }); return new RouteHandlerBuilder(conventions, finallyConventions); @@ -54,7 +56,8 @@ public RouteHandlerBuilder AddRouteHandler( IEnumerable? httpMethods, bool isFallback, Func? inferMetadataFunc, - Func createHandlerRequestDelegateFunc) + Func createHandlerRequestDelegateFunc, + MethodInfo methodInfo) { var conventions = new ThrowOnAddAfterEndpointBuiltConventionCollection(); var finallyConventions = new ThrowOnAddAfterEndpointBuiltConventionCollection(); @@ -74,7 +77,8 @@ public RouteHandlerBuilder AddRouteHandler( Conventions = conventions, FinallyConventions = finallyConventions, InferMetadataFunc = inferMetadataFunc, - CreateHandlerRequestDelegateFunc = createHandlerRequestDelegateFunc + CreateHandlerRequestDelegateFunc = createHandlerRequestDelegateFunc, + Method = methodInfo }); return new RouteHandlerBuilder(conventions, finallyConventions); @@ -120,7 +124,7 @@ private RouteEndpointBuilder CreateRouteEndpointBuilder( RouteEntry entry, RoutePattern? groupPrefix = null, IReadOnlyList>? groupConventions = null, IReadOnlyList>? groupFinallyConventions = null) { var pattern = RoutePatternFactory.Combine(groupPrefix, entry.RoutePattern); - var handler = entry.RouteHandler; + var methodInfo = entry.Method; var isRouteHandler = (entry.RouteAttributes & RouteAttributes.RouteHandler) == RouteAttributes.RouteHandler; var isFallback = (entry.RouteAttributes & RouteAttributes.Fallback) == RouteAttributes.Fallback; @@ -133,7 +137,7 @@ private RouteEndpointBuilder CreateRouteEndpointBuilder( // ApplicationBuilder.Build(). This was observed in MapSignalRTests and is not very useful. Maybe if we come up // with a better heuristic for what a useful method name is, we could use it for everything. Inline lambdas are // compiler generated methods so they are filtered out even for route handlers. - if (isRouteHandler && TypeHelper.TryGetNonCompilerGeneratedMethodName(handler.Method, out var methodName)) + if (isRouteHandler && TypeHelper.TryGetNonCompilerGeneratedMethodName(methodInfo, out var methodName)) { displayName = $"{displayName} => {methodName}"; } @@ -180,7 +184,7 @@ private RouteEndpointBuilder CreateRouteEndpointBuilder( if (isRouteHandler) { - builder.Metadata.Add(handler.Method); + builder.Metadata.Add(methodInfo); } if (entry.HttpMethods is not null) @@ -209,11 +213,11 @@ private RouteEndpointBuilder CreateRouteEndpointBuilder( Debug.Assert(entry.InferMetadataFunc != null, "A func to infer metadata must be provided for route handlers."); rdfOptions = CreateRdfOptions(entry, pattern, builder); - rdfMetadataResult = entry.InferMetadataFunc(entry.RouteHandler.Method, rdfOptions); + rdfMetadataResult = entry.InferMetadataFunc(methodInfo, rdfOptions); } // Add delegate attributes as metadata before entry-specific conventions but after group conventions. - var attributes = handler.Method.GetCustomAttributes(); + var attributes = entry.Method.GetCustomAttributes(); if (attributes is not null) { foreach (var attribute in attributes) @@ -325,6 +329,7 @@ private readonly struct RouteEntry public required ThrowOnAddAfterEndpointBuiltConventionCollection FinallyConventions { get; init; } public required Func? InferMetadataFunc { get; init; } public required Func CreateHandlerRequestDelegateFunc { get; init; } + public required MethodInfo Method { get; init; } } [Flags]