Cast async Tasks to Delegate and let the framework handle awaiting it

This commit is contained in:
2024-10-18 13:18:45 +02:00
parent 8789f994bf
commit ecee8433a0
2 changed files with 4 additions and 4 deletions
@@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFramework>netstandard2.0</TargetFramework>
<Version>0.8.17</Version> <Version>0.8.18</Version>
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Alexandru Macocian</Authors> <Authors>Alexandru Macocian</Authors>
@@ -262,11 +262,11 @@ public class UseRoutesGenerator : IIncrementalGenerator
return returnTypeSymbol?.ToDisplayString() switch return returnTypeSymbol?.ToDisplayString() switch
{ {
"System.Threading.Tasks.Task<Microsoft.AspNetCore.Http.IResult>" => @$" "System.Threading.Tasks.Task<Microsoft.AspNetCore.Http.IResult>" => @$"
builder.Map{type}(""{pattern}"", async (HttpContext httpContext, {classDeclarationSyntax.Identifier} route{(parameters.Length > 0 ? $", {parameters}" : "")}) => builder.Map{type}(""{pattern}"", (Delegate)((HttpContext httpContext, {classDeclarationSyntax.Identifier} route{(parameters.Length > 0 ? $", {parameters}" : "")}) =>
{{ {{
var cancellationToken = httpContext.RequestAborted; var cancellationToken = httpContext.RequestAborted;
return await route.{methodDeclarationSyntax.Identifier}({variables}); return route.{methodDeclarationSyntax.Identifier}({variables});
}}){routeFilterSb};", }})){routeFilterSb};",
"Microsoft.AspNetCore.Http.IResult" => @$" "Microsoft.AspNetCore.Http.IResult" => @$"
builder.Map{type}(""{pattern}"", (HttpContext httpContext, {classDeclarationSyntax.Identifier} route{(parameters.Length > 0 ? $", {parameters}" : "")}) => builder.Map{type}(""{pattern}"", (HttpContext httpContext, {classDeclarationSyntax.Identifier} route{(parameters.Length > 0 ? $", {parameters}" : "")}) =>
{{ {{