Tolitech.Presentation.API.Generators
1.0.0-preview.4
dotnet add package Tolitech.Presentation.API.Generators --version 1.0.0-preview.4
NuGet\Install-Package Tolitech.Presentation.API.Generators -Version 1.0.0-preview.4
<PackageReference Include="Tolitech.Presentation.API.Generators" Version="1.0.0-preview.4" />
<PackageVersion Include="Tolitech.Presentation.API.Generators" Version="1.0.0-preview.4" />
<PackageReference Include="Tolitech.Presentation.API.Generators" />
paket add Tolitech.Presentation.API.Generators --version 1.0.0-preview.4
#r "nuget: Tolitech.Presentation.API.Generators, 1.0.0-preview.4"
#:package Tolitech.Presentation.API.Generators@1.0.0-preview.4
#addin nuget:?package=Tolitech.Presentation.API.Generators&version=1.0.0-preview.4&prerelease
#tool nuget:?package=Tolitech.Presentation.API.Generators&version=1.0.0-preview.4&prerelease
Tolitech.Presentation.API.Generators
Overview
This project implements a Roslyn code generator for ASP.NET that automatically identifies all classes implementing the IEndpoint interface and generates code to register these endpoints in a web application. The goal is to automate route registration, reduce manual work, and promote standardization.
How It Works
The generator scans the project for classes implementing Tolitech.Presentation.API.Generators.Abstractions.IEndpoint that are not abstract. For each class found, the generator creates an extension method that registers all endpoints in the application.
Example of Generated Code
public static class EndpointRouteBuilderExtensions
{
public static void MapEndpoints(this IEndpointRouteBuilder app)
{
MyEndpoint.MapEndpoint(app);
AnotherEndpoint.MapEndpoint(app);
// ... other endpoints
}
}
How to Use
- Implement the IEndpoint interface in your endpoints (see Abstractions project README).
- Add Tolitech.Presentation.API.Generators as an analyzer to your project.
- Call the generated method to register all endpoints:
app.MapEndpoints();
Benefits
- Automatic endpoint registration
- Reduction of repetitive code
- Easier maintenance
- Seamless integration with ASP.NET
Requirements
- .NET Standard 2.0 (compatible with .NET 6+)
- Microsoft.CodeAnalysis.CSharp
Complete Example
// Endpoint definition
public sealed class TestEndpoint : IEndpoint
{
public static void MapEndpoint(IEndpointRouteBuilder app)
{
app.MapGet("/test", () => "Testing endpoint!");
}
}
// Automatic registration
app.MapEndpoints();
Notes
This project depends on Tolitech.Presentation.API.Generators.Abstractions to identify endpoints. It is recommended to use both together.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|