DoconutOptions
Konfigurera Doconut-tjänsterna
DoconutOptions (namespace Doconut) är det enda konfigurationsobjektet för hela SDK:n. Du konfigurerar det en gång, inuti AddDoconut(), och det registreras som en singleton.
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
options.UnsafeMode = false;
options.ShowDoconutInfo = false;
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Egenskaper
| Typ | Egenskap | Standard | Beskrivning |
|---|---|---|---|
bool | ShowDoconutInfo | false | När true returnerar en middleware‑begäran utan token en versionsbanner (Doconut <version> körs på <host>) istället för 404. Användbart som en snabb kontroll; låt vara false i produktion. |
bool | UnsafeMode | false | När true hoppas ASP.NET‑sessionssäkerhetskontrollen över vid sidförfrågningar. Låt vara false i produktion (se Kärnkoncepter → Sessioner & Säkerhet). |
string | MiddlewarePath | "/doconut" | Koordinationsvärde för slutpunkten för sida‑bild. Det valideras, men monterar ingen pipeline‑gren; håll det i linje med den faktiska UseDoconut()‑mappningen och klientens BasePath. |
string | ResourcesPath | "/doconut-res" | URL‑sökvägsprefix för de inbäddade JS/CSS/bild/font‑resurserna. |
string | LicensePath | "" | Sökväg till licensfilen. Tom → nästa licenskälla, sedan automatisk upptäckt; inget hittas → vattenmärkt utvärderingsläge utan funktioner. |
string | LicenseContent | "" | Rå XML‑licensinnehåll (databas, miljövariabel, hemlighets‑hanterare). Har företräde framför LicensePath. |
Stream? | LicenseStream | null | Licens som en ström, läses en gång vid start. Har företräde framför båda andra källor. |
bool | ResetLicense | false | Reserverad kompatibilitetsflagga. Den aktuella .NET 6‑implementeringen använder den inte; starta om applikationen efter att ha ersatt en licens. |
DoconutPluginRegistry | PluginRegistry | — | Skrivskyddad register som samlar plugin‑bidrag; används av visarfabriken. Fyll i via AddPlugin<T>(). |
Licensprioritet (verkställs vid tjänstregistrering): LicenseStream → LicenseContent → LicensePath → automatisk upptäckt (se Kom igång → Licensinställning).
Metoder
AddPlugin()
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()Använd den här metoden för de släppta opt‑in‑paketen Converter och DICOM. Annotation och normal Search är inbyggda licensierade funktioner och använder inte AddPlugin<TPlugin>().
Registrerar ett förstapartspaket (Converter, DICOM). Fluent — returnerar options‑instansen. AddDoconut() kastar InvalidOperationException för en saknad licens, äldre TRIAL‑fil eller betald licens som inte ger pluginens funktionalitet. Tillfälliga/Demo‑registreringar behålls efter utgång och blir föremål för körningens grind (se Kärnkoncepter → Plugin‑system).
Det opt‑in‑Converter‑widgetet aktiveras med AddConverterWidget() och exponeras via den skrivskyddade ConverterWidget‑egenskapen; dess alternativ dokumenteras på sidan Converter Plugin (Plugins → Konverterings‑plugin).
RegisterViewer(extension, factory, defaultConfig?)
DoconutOptions RegisterViewer(
string extension, // ".myext" — leading dot optional
Func<IFormatViewer> factory,
Func<BaseConfig>? defaultConfig = null)Registrerar en anpassad visare för en filändelse. Anpassade visare har företräde framför inbyggda och plugin‑visare och är inte licensstyrda. När defaultConfig utelämnas och ett dokument öppnas utan explicit konfiguration används en ImageConfig.
Kastar ArgumentException (Extension must be a non-empty file extension.) för en tom ändelse och ArgumentNullException för en null‑fabrik.
Startvalidering
AddDoconut() validerar alternativen fail‑fast, så en felkonfiguration visas som ett tydligt undantag vid start istället för förvirrande 404‑fel vid begäran:
DoconutOptions.MiddlewarePath must be a non-empty path starting with '/'.
DoconutOptions.ResourcesPath must be a non-empty path starting with '/'.
DoconutOptions.MiddlewarePath and ResourcesPath must be different paths.Vanliga konfigurationer
// Production: explicit license, everything locked down (all security defaults)
builder.Services.AddDoconut(options =>
{
options.LicenseContent = builder.Configuration["Doconut:License"] ?? "";
});
// Custom paths (e.g. to avoid a route conflict)
builder.Services.AddDoconut(options =>
{
options.MiddlewarePath = "/docs-engine";
options.ResourcesPath = "/docs-assets";
});När du ändrar ResourcesPath, håll klient‑widgetens ResPath i synk (se ViewerConfig).
MiddlewarePath är inte en automatisk ASP.NET Core‑rutt‑mappare. Om Doconut bara ska svara under ett eget prefix, montera UseDoconut() på den grenen (t.ex. med app.Map("/docs-engine", branch => branch.UseDoconut())) och sätt klientens BasePath till samma URL.
Var den här sidan till hjälp?