Mark source generated routes as require dynamic code when RDG is off

This commit is contained in:
2025-06-29 13:31:50 +02:00
parent b1b433f5f3
commit 5206a92f85
3 changed files with 16 additions and 4 deletions
@@ -76,12 +76,13 @@ public class UseRoutesGenerator : IIncrementalGenerator
var languageVersion = maybeLanguageVersion.Value;
var routeUsings = new HashSet<string>
{
Constants.UsingSystemDiagnosticsCodeAnalysis,
Constants.UsingSystemRuntimeCompilerServices,
Constants.UsingSystemThreading,
Constants.UsingMicrosoftAspNetCoreRouting,
Constants.UsingMicrosoftAspNetCoreHttp,
Constants.UsingMicrosoftAspNetCoreBuilder,
Constants.UsingMicrosoftAspNetCoreHttp,
Constants.UsingMicrosoftAspNetCoreMvc,
Constants.UsingSystemRuntimeCompilerServices
Constants.UsingMicrosoftAspNetCoreRouting
};
var builder = SyntaxBuilder.CreateCompilationUnit();
@@ -188,6 +189,11 @@ public class UseRoutesGenerator : IIncrementalGenerator
useRoutesWebAppBody.AppendLine("return builder;");
useRoutesWebAppMethodBuilder.WithBody(useRoutesWebAppBody.ToString());
useRoutesWebAppMethodBuilder
.WithAttribute(SyntaxBuilder.CreateAttribute(Constants.RequiresUnreferencedCode)
.WithArgument(Constants.RequiresUnreferencedCodeMessage))
.WithAttribute(SyntaxBuilder.CreateAttribute(Constants.RequiresDynamicCode)
.WithArgument(Constants.RequiresDynamicCodeMessage));
foreach (var classUsing in routeUsings)
{
builder.WithUsing(classUsing);