DoconutOptions
Konfigurace služeb Doconut
DoconutOptions (namespace Doconut) je jediný konfigurační objekt pro celé SDK. Nastavíte jej jednou, uvnitř AddDoconut(), a je registrován jako singleton.
Jedná se o změnu jak umístění, tak i podoby. V předchozí knihovně .NET Standard byl objekt DoconutOptions vytvořen v době sestavování pipeline a předán do UseDoconut(new DoconutOptions { … }). Zde middleware nepřijímá žádné možnosti — vše je nastaveno během registrace služeb.
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
options.UnsafeMode = false;
options.ShowDoconutInfo = false;
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Vlastnosti
| Typ | Vlastnost | Výchozí | Popis |
|---|---|---|---|
bool | ShowDoconutInfo | false | Když je true, požadavek middleware bez tokenu vrátí banner verze místo 404. Užitočné jako rychlá kontrola; v produkci ponechte false. |
bool | UnsafeMode | false | Když je true, přeskočí bezpečnostní kontrolu ASP.NET-session u požadavků na stránky. V produkci na jediném uzlu ponechte false (viz Core Concepts → Sessions & Security). Dříve pojmenováno UnSafeMode. |
string | MiddlewarePath | "/doconut" | Koordinační hodnota pro koncový bod page-image. Je validována, ale nevytváří větev pipeline; udržujte ji v souladu se skutečným mapováním UseDoconut() a klientským BasePath. |
string | ResourcesPath | "/doconut-res" | Předpona URL cesty pro vložené zdroje JS/CSS/obrázky/písma. |
string | LicensePath | "" | Cesta k souboru licence. Prázdné → další zdroj licence, poté automatické vyhledání; pokud nic nenalezeno → vodotiskový evaluační stav bez funkcí. |
string | LicenseContent | "" | Surový XML obsah licence (databáze, env var, secret manager). Má přednost před LicensePath. |
Stream? | LicenseStream | null | Licence jako stream, načtená jednou při startu. Má přednost před oběma ostatními zdroji. |
bool | ResetLicense | false | Rezervovaný příznak kompatibility. Aktuální implementace jej nevyužívá; po výměně licence restartujte aplikaci. |
DoconutPluginRegistry | PluginRegistry | — | Registr pouze pro čtení shromažďující příspěvky pluginů; využívá jej továrna prohlížeče. Naplňte pomocí AddPlugin<T>(). |
Priorita licencí (vynucená při registraci služeb): LicenseStream → LicenseContent → LicensePath → automatické vyhledání (viz Getting Started → License Setup).
Metody
AddPlugin()
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()Použijte tuto metodu pro vydané volitelné balíčky Converter a DICOM. Anotace a běžné vyhledávání jsou vestavěné licencované funkce a nepoužívají AddPlugin<TPlugin>().
Registruje plugin první strany (Converter, DICOM). Fluent — vrací instanci options. AddDoconut() vyhodí InvalidOperationException při chybějící licenci, starém souboru TRIAL nebo placené licenci, která neposkytuje schopnost pluginu. Dočasné/Demo registrace jsou zachovány po vypršení a podléhají runtime gate (viz Core Concepts → Plugin System).
Volitelný widget Converter je povolen pomocí AddConverterWidget() a je zpřístupněn přes vlastnost pouze pro čtení ConverterWidget; jeho možnosti jsou zdokumentovány na stránce Converter Plugin (Plugins → Converter Plugin).
RegisterViewer(extension, factory, defaultConfig?)
DoconutOptions RegisterViewer(
string extension, // ".myext" — leading dot optional
Func<IFormatViewer> factory,
Func<BaseConfig>? defaultConfig = null)Registruje vlastní prohlížeč pro příponu souboru. Vlastní prohlížeče mají přednost před vestavěnými a pluginovými prohlížeči a nejsou omezeny licencí. Když je defaultConfig vynecháno a dokument se otevře bez explicitní konfigurace, použije se ImageConfig.
Vyhodí ArgumentException (Extension must be a non-empty file extension.) pro prázdnou příponu a ArgumentNullException pro nulovou továrnu.
Validace při spuštění
AddDoconut() validuje možnosti fail-fast, takže špatná konfigurace se projeví jako jasná výjimka při spuštění místo matoucích 404 během požadavku:
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.Běžné konfigurace
// 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";
});Když změníte ResourcesPath, udržujte ResPath klientského widgetu v synchronizaci (viz ViewerConfig). Toto je jedno ze dvou nastavení na straně klienta, která selžou bez chybové zprávy.
MiddlewarePath není automatický mapovač rout ASP.NET Core. Pokud má Doconut odpovídat pouze pod vlastním prefixem, připojte UseDoconut() na tuto větev (například pomocí app.Map("/docs-engine", branch => branch.UseDoconut())) a nastavte klientský BasePath na stejnou URL. Referenční aplikace však zachovává historický tvar požadavku DocImage.axd na větvi MapWhen s BasePath: '/'.
Byla tato stránka užitečná?