mirror of
https://github.com/AlexMacocian/Net.Sdk.Web.Extensions.git
synced 2026-07-15 13:39:29 +00:00
Mark source generated routes as require dynamic code when RDG is off
This commit is contained in:
@@ -18,6 +18,7 @@ public static class Constants
|
||||
public const string Namespace = "Net.Sdk.Web";
|
||||
public const string UsingSystemThreading = "System.Threading";
|
||||
public const string UsingSystemRuntimeCompilerServices = "System.Runtime.CompilerServices";
|
||||
public const string UsingSystemDiagnosticsCodeAnalysis = "System.Diagnostics.CodeAnalysis";
|
||||
public const string UsingMicrosoftAspNetCoreHttp = "Microsoft.AspNetCore.Http";
|
||||
public const string UsingMicrosoftAspNetCoreRouting = "Microsoft.AspNetCore.Routing";
|
||||
public const string UsingMicrosoftAspNetCoreBuilder = "Microsoft.AspNetCore.Builder";
|
||||
@@ -120,5 +121,10 @@ public static class Constants
|
||||
public const string RequiresAuthorization = "RequireAuthorization";
|
||||
public const string WithOpenApiExtension = "WithOpenApi";
|
||||
|
||||
public const string RequiresUnreferencedCode = "RequiresUnreferencedCode";
|
||||
public const string RequiresUnreferencedCodeMessage = "Uses Map methods (reflection-heavy fall-back)";
|
||||
public const string RequiresDynamicCode = "RequiresDynamicCode";
|
||||
public const string RequiresDynamicCodeMessage = "Minimal-API helper needs dynamic code when RDG is off";
|
||||
|
||||
public const string Default200Status = "StatusCodes.Status200OK";
|
||||
}
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<Version>0.9.4</Version>
|
||||
<Version>0.9.5</Version>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>Alexandru Macocian</Authors>
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user