DoconutOptions
Konfigurace služeb Doconut
DoconutOptions (namespace Doconut) je jediný konfigurační objekt pro celé SDK. Nakonfigurujete 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ž 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čí kontrolu zabezpečení ASP.NET-session u požadavků na stránky. V produkci ponechte false (viz Základní koncepty → Relace a zabezpečení). |
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ý příznak kompatibility. Současná implementace .NET 8 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 na prohlížeče. Naplňte pomocí AddPlugin<T>(). |
Priorita licence (vynucená při registraci služby): LicenseStream → LicenseContent → LicensePath → automatické vyhledání (viz Začínáme → Nastavení licence).
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 nevyuží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 Základní koncepty → Systém pluginů).
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 (Pluginy → Plugin převodníku).
RegisterViewer(rozšíření, továrna, výchozí konfigurace?)
DoconutOptions RegisterViewer(
string extension, // ".myext" — volitelná úvodní tečka
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.
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 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
// Produkce: explicitní licence, vše uzamčeno (všechny výchozí bezpečnostní nastavení)
builder.Services.AddDoconut(options =>
{
options.LicenseContent = builder.Configuration["Doconut:License"] ?? "";
});
// Vlastní cesty (např. aby se předešlo konfliktu trasy)
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á?