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.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath     = "Doconut.Viewer.lic";
    options.UnsafeMode      = false;
    options.ShowDoconutInfo = false;
    options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});

Vlastnosti

TypVlastnostVýchozíPopis
boolShowDoconutInfofalseKdyž 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.
boolUnsafeModefalseKdyž 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í).
stringMiddlewarePath"/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.
stringResourcesPath"/doconut-res"Prefix URL cesty pro vložené zdroje JS/CSS/obrázky/písma.
stringLicensePath""Cesta k souboru licence. Prázdná → další zdroj licence, pak automatické vyhledání; pokud nic nenalezne → vodotiskový evaluační stav bez funkcí.
stringLicenseContent""Surový XML obsah licence (databáze, env var, secret manager). Má přednost před LicensePath.
Stream?LicenseStreamnullLicence jako stream, načtená jednou při startu. Má přednost před oběma ostatními zdroji.
boolResetLicensefalseRezervovaný kompatibilní příznak. Aktuální implementace .NET 6 jej nevyužívá; po výměně licence restartujte aplikaci.
DoconutPluginRegistryPluginRegistryRegistr 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): LicenseStreamLicenseContentLicensePath → automatické vyhledání (viz Začínáme → Nastavení licence).

Metody

AddPlugin()()

text
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?)

text
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:

text
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

csharp
// 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á?