Rozšíření Doconut

Registrace služeb a middleware

DoconutExtensions (namespace Doconut.Middleware) je statická třída se třemi voláními, která každý host Doconut provádí: jedno registrace služby a dvě registrace middleware.

csharp
builder.Services.AddDoconut(options => { /* … */ });
// …
app.UseDoconutResources(); // PŘED UseDoconut()
app.UseDoconut();

PřidatDoconut

text
IServiceCollection AddDoconut(this IServiceCollection services, Action<DoconutOptions>? configure = null)

Vytváří DoconutOptions, provádí jejich okamžitou validaci (viz DoconutOptions → Startup validation) a registruje celý graf služeb:

SlužbaŽivotnostRole
DoconutOptionsSingletonObjekt konfigurace
IViewerFactorySingletonMapuje rozšíření na prohlížeče formátů
IDocumentSessionManagerSingletonToken → cache relace (IMemoryCache je také registrován)
IDoconutLicenseServiceSingletonLicence načtena jednou při spuštění (priorita: LicenseStream → LicenseContent → LicensePath → auto-search)
PageImageServiceSingletonPipeline pro stránku‑obrázek (vodoznak/rotace/škálování/poznámky)
Zabezpečení dokumentu (úložiště přístupů)SingletonOprávnění pro vazbu token‑na‑relaci
ViewerTransientVeřejné rozhraní otevření/uzavření
DocumentConverterTransientRozhraní konverze — vyžaduje plugin Converter
Kontrola zdraví "doconut"—Zpráva o stavu licence/expirace prostřednictvím ASP.NET health checks

Dvě chování, která stojí za to znát:

  • Converter vyžaduje svůj plugin. Vyřešení DocumentConverter bez options.AddPlugin<ConverterPlugin>() vyvolá výjimku:
text
InvalidOperationException: No IDocumentConverter is registered. Add the converter plugin: options.AddPlugin<Doconut.Plugins.Converter.ConverterPlugin>().
  • Oprávnění pluginu je ověřeno při spuštění. Chybějící licence, starý soubor TRIAL nebo placená licence bez registrované schopnosti pluginu selže v čase AddDoconut(). Registrace typu Temporary/Demo přežijí datum expirace, zatímco runtime brány odeberou vypršené schopnosti.

Kontrola zdraví se integruje se standardním mechanismem ASP.NET Core — namapujte ji, pokud chcete stav licence na vašem health endpointu:

csharp
app.MapHealthChecks("/health");

PoužítDoconut

text
IApplicationBuilder UseDoconut(this IApplicationBuilder app)

Přidává middleware Doconut pro stránku‑obrázek. Odpovídá na každý požadavek obsahující dotazový parametr ?token= — stránky, náhledy, vyhledávání, poznámky, akce na stránce (úplná tabulka požadavků je v Základní koncepty → Jak funguje prohlížeč). Když je UnsafeMode false, vrstva zabezpečení dokumentu je automaticky zapojena před ní.

Referenční ukázka směruje požadavky widgetu přes větev cesty:

csharp
app.MapWhen(
    ctx => ctx.Request.Path.Value?.EndsWith("DocImage.axd", StringComparison.OrdinalIgnoreCase) == true,
    branch => branch.UseDoconut());

PoužítDoconutResources

text
IApplicationBuilder UseDoconutResources(this IApplicationBuilder app)

Servíruje vložené JS, CSS, obrázky a fonty na DoconutOptions.ResourcesPath (výchozí /doconut-res). Toto jsou soubory, pro které Viewer.ReferenceCss() / ReferenceScripts() generují značky.

Vždy jej zavolejte před UseDoconut(). Pokud je oblast prohlížeče prázdná a konzole prohlížeče ukazuje 404 pro /doconut-res/..., toto volání chybí nebo je na špatném místě.

Přehled pořadí

csharp
app.UseRouting();
app.UseSession();          // vyžadováno, když UnsafeMode = false
app.UseDoconutResources(); // první volání Doconut
app.UseDoconut();          // 2. volání Doconut (nebo přes MapWhen větev)

Byla tato stránka užitečná?