DoconutOptions
Konfigurace služeb Doconut
DoconutOptions (namespace Doconut) je jediný konfigurační objekt pro celé SDK. Nastavujete jej jednou, uvnitř AddDoconut(), a je registrová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ž true, požadavek middleware bez tokenu vrátí banner verze (Doconut <version> is running on <host>) místo 404. Užitečné jako rychlá kontrola; v produkci ponechte false. |
bool | UnsafeMode | false | Když true, přeskočí bezpečnostní kontrolu ASP.NET-session u požadavků na stránky. V produkci ponechte false (viz Core Concepts → Sessions & Security). |
string | MiddlewarePath | "/doconut" | Koordinační hodnota pro endpoint 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/image/font. |
string | LicensePath | "" | Cesta k souboru licence. Prázdná → další zdroj licence, pak automatické vyhledání; 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ý kompatibilní příznak. Aktuální implementace .NET 6 jej nevyužívá; po výměně licence restartujte aplikaci. |
DoconutPluginRegistry | PluginRegistry | — | Registr pouze pro čtení sbírající příspěvky pluginů; využívá jej továrna prohlížečů. Naplňte pomocí AddPlugin<T>(). |
Priorita licencí (vynucená při registraci služby): LicenseStream → LicenseContent → LicensePath → automatické vyhledání (viz Getting Started → License Setup).
Metody
AddPlugin<TPlugin>()
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. Dočasné/Demo registrace jsou zachovány i po vypršení a podléhají runtime gate (viz Core Concepts → Plugin System).
Widget volitelného Converter je povolen pomocí AddConverterWidget() a zpřístupněn přes pouze pro čtení vlastnost ConverterWidget; jeho možnosti jsou zdokumentovány na stránce Converter Plugin (Plugins → Converter Plugin).
RegisterViewer(extension, factory, defaultConfig?)
DoconutOptions RegisterViewer(
string extension, // ".myext" — úvodní tečka volitelná
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.
Vyhodí ArgumentException (Extension must be a non-empty file extension.) při prázdné příloze 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 startu 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: explicitní licence, vše je uzamčeno (všechny výchozí nastavení zabezpečení)
builder.Services.AddDoconut(options =>
{
options.LicenseContent = builder.Configuration["Doconut:License"] ?? "";
});
// Vlastní cesty (e.g. aby se předešlo konfliktu směrování)
builder.Services.AddDoconut(options =>
{
options.MiddlewarePath = "/docs-engine";
options.ResourcesPath = "/docs-assets";
});Když změníte ResourcesPath, udržujte ResPath klientského widgetu synchronizované (viz ViewerConfig).
MiddlewarePath není automatický mapovač tras 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á?