Expose a non-extension method for NativeAOT

This commit is contained in:
2025-02-17 14:20:31 +01:00
parent ac0e9efa77
commit bfdf1e1811
3 changed files with 8 additions and 1 deletions
@@ -67,6 +67,7 @@ public static class Constants
public const string MapAllRoutes = "MapAllRoutes";
public const string UseRoutesMethodName = "UseRoutes";
public const string RegisterRoutesMethodName = "RegisterRoutes";
public const string EndpointRouteBuilderExtensionsName = "EndpointRouteBuilderExtensions";
public const string IEndpointRouteBuilderTypeName = "IEndpointRouteBuilder";
public const string WebApplicationBuilderExtensionsName = "WebApplicationBuilderExtension";
@@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<Version>0.8.20</Version>
<Version>0.8.21</Version>
<LangVersion>latest</LangVersion>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Alexandru Macocian</Authors>
@@ -88,7 +88,12 @@ public class UseRoutesGenerator : IIncrementalGenerator
.WithModifiers($"{Constants.Public} {Constants.Static}")
.WithAttribute(SyntaxBuilder.CreateAttribute(Constants.MethodImplAttribute)
.WithRawArgument(Constants.MethodImplArgument));
var registerWebAppMethodBuilder = SyntaxBuilder.CreateMethod(Constants.WebApplicationTypeName, Constants.RegisterRoutesMethodName)
.WithModifiers($"{Constants.Public} {Constants.Static}")
.WithAttribute(SyntaxBuilder.CreateAttribute(Constants.MethodImplAttribute)
.WithRawArgument(Constants.MethodImplArgument));
webAppBuilder.WithMethod(useRoutesWebAppMethodBuilder);
webAppBuilder.WithMethod(registerWebAppMethodBuilder);
var useRoutesWebAppBody = new StringBuilder();
foreach (var classToMethodMap in classToMethodMapping)
@@ -183,6 +188,7 @@ public class UseRoutesGenerator : IIncrementalGenerator
useRoutesWebAppBody.AppendLine("return builder;");
useRoutesWebAppMethodBuilder.WithBody(useRoutesWebAppBody.ToString());
registerWebAppMethodBuilder.WithBody(useRoutesWebAppBody.ToString());
foreach (var classUsing in routeUsings)
{
builder.WithUsing(classUsing);