DoconutOptions
Konfigurace služeb Doconut
DoconutOptions (namespace Doconut) je jediný konfigurační objekt pro celé SDK. Nastavíte jej jednou, uvnitř AddDoconut(), a je zaregistrován jako singleton.
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 s verzí (Doconut <version> běží na <host>), místo 404. Užitečné jako rychlá kontrola; v produkci ponechte false. |
bool | UnsafeMode | false | Když je true, přeskočí bezpečnostní kontrolu ASP.NET‑session při požadavcích na stránky. V produkci ponechte false (viz Základní koncepty → Relace a zabezpečení). |
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" | Prefix URL cesty pro vložené zdroje JS/CSS/obrázky/písma. |
string | LicensePath | "" | Cesta k souboru licence. Prázdná → další zdroj licence, pak automatické vyhledání; pokud nic nenalezne → 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ý kompatibilní příznak. Aktuální implementace .NET 6 jej nevyužívá; po výměně licence restartujte aplikaci. |
DoconutPluginRegistry | PluginRegistry | — | Registr pouze pro čtení shromažďující příspěvky pluginů; používá jej továrna na prohlížeče. Naplňte pomocí AddPlugin<T>(). |
Priorita licencí (vynucená při registraci služby): LicenseStream → LicenseContent → LicensePath → automatické vyhledání (viz Začínáme → Nastavení licence).
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 možností. AddDoconut() vyhodí InvalidOperationException při chybějící licenci, starém souboru TRIAL nebo placené licenci, která neposkytuje schopnost pluginu. Registrace dočasných/Demo jsou zachovány po vypršení a podléhají runtime gate (viz Základní koncepty → Systém pluginů).
Widget Converter, který je volitelný, se povolí 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án a dokument se otevře bez explicitní konfigurace, použije se ImageConfig.
Vyvolá ArgumentException (Extension must be a non-empty file extension.) pro prázdnou příponu a ArgumentNullException pro nulovou továrnu.
Ověření při spuštění
AddDoconut() ověřuje 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).
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.
Byla tato stránka užitečná?