ApricotFramework.SelfDefinition.AspNetCore
0.1.0
Prefix Reserved
dotnet add package ApricotFramework.SelfDefinition.AspNetCore --version 0.1.0
NuGet\Install-Package ApricotFramework.SelfDefinition.AspNetCore -Version 0.1.0
<PackageReference Include="ApricotFramework.SelfDefinition.AspNetCore" Version="0.1.0" />
<PackageVersion Include="ApricotFramework.SelfDefinition.AspNetCore" Version="0.1.0" />
<PackageReference Include="ApricotFramework.SelfDefinition.AspNetCore" />
paket add ApricotFramework.SelfDefinition.AspNetCore --version 0.1.0
#r "nuget: ApricotFramework.SelfDefinition.AspNetCore, 0.1.0"
#:package ApricotFramework.SelfDefinition.AspNetCore@0.1.0
#addin nuget:?package=ApricotFramework.SelfDefinition.AspNetCore&version=0.1.0
#tool nuget:?package=ApricotFramework.SelfDefinition.AspNetCore&version=0.1.0
ApricotFramework.SelfDefinition.AspNetCore
Lets an ASP.NET Core service state facts about itself instead of inferring them from whatever request happens to arrive. Chiefly its external base address — the origin it is reached at from outside — so code building absolute links does not have to guess.
Install
dotnet add package ApricotFramework.SelfDefinition.AspNetCore
Usage
using ApricotFramework.SelfDefinition.AspNetCore.Extensions;
builder.Services.AddSelfDefinition(builder.Configuration);
{
"SelfDefinition": {
"ExternalBaseAddress": "https://api.example.com/gateway"
}
}
using ApricotFramework.SelfDefinition.AspNetCore;
app.MapGet("/link", (ISelfDefinitionProvider selfDefinition) =>
{
// Never ends in a slash, so one separator is always correct.
var baseAddress = selfDefinition.GetExternalBaseAddress();
return Results.Ok($"{baseAddress}/account/reset?token=abc123");
});
ExternalBaseAddress is required and validated when the host starts, so a missing or unusable
value stops the host rather than producing wrong links later. Rejected: anything that is not an
absolute http/https URL, embedded credentials, a query string, and a fragment. Note that a bare
path such as /api is rejected too — it parses as an absolute file: URI, so it fails the scheme
check rather than the absolute-URL one.
Full documentation: https://projectapricot.dev
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.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 |
|---|---|---|
| 0.1.0 | 176 | 8/13/2026 |