DoconutOptions
Configure the Doconut services
DoconutOptions (namespace Doconut) est l'objet de configuration unique pour l'ensemble du SDK. Vous le configurez une fois, dans AddDoconut(), et il est enregistré en tant que singleton.
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
options.UnsafeMode = false;
options.ShowDoconutInfo = false;
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Propriétés
| Type | Propriété | Valeur par défaut | Description |
|---|---|---|---|
bool | ShowDoconutInfo | false | Lorsque true, une requête middleware sans jeton renvoie une bannière de version (Doconut <version> is running on <host>) au lieu de 404. Utile comme vérification rapide ; laissez false en production. |
bool | UnsafeMode | false | Lorsque true, ignore la vérification de sécurité de session ASP.NET sur les requêtes de page. Laissez false en production (voir Concepts de base → Sessions & Sécurité). |
string | MiddlewarePath | "/doconut" | Valeur de coordination pour le point de terminaison page-image. Elle est validée, mais ne monte pas de branche de pipeline ; maintenez‑la alignée avec le mappage réel de UseDoconut() et le BasePath du client. |
string | ResourcesPath | "/doconut-res" | Préfixe de chemin URL pour les ressources JS/CSS/image/font intégrées. |
string | LicensePath | "" | Chemin vers le fichier de licence. Vide → source de licence suivante, puis découverte automatique ; rien trouvé → état d'évaluation filigrané sans capacités. |
string | LicenseContent | "" | Contenu XML brut de la licence (base de données, variable d'environnement, gestionnaire de secrets). Prend le pas sur LicensePath. |
Stream? | LicenseStream | null | Licence sous forme de flux, lu une fois au démarrage. Prend le pas sur les deux autres sources. |
bool | ResetLicense | false | Drapeau de compatibilité réservé. L'implémentation .NET 6 actuelle ne l'utilise pas ; redémarrez l'application après avoir remplacé une licence. |
DoconutPluginRegistry | PluginRegistry | — | Registre en lecture seule collectant les contributions des plugins ; utilisé par la fabrique de visionneuse. Remplissez‑le via AddPlugin<T>(). |
Priorité des licences (appliquée lors de l'enregistrement du service) : LicenseStream → LicenseContent → LicensePath → découverte automatique (voir Démarrage → Configuration de la licence).
Méthodes
AddPlugin()
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()Utilisez cette méthode pour les packages Converter et DICOM optionnels publiés. L'annotation et la recherche normale sont des fonctionnalités sous licence intégrées et n'utilisent pas AddPlugin<TPlugin>().
Enregistre un plugin de première partie (Converter, DICOM). Fluent — renvoie l'instance des options. AddDoconut() lève InvalidOperationException en cas de licence manquante, de fichier TRIAL hérité, ou de licence payante ne conférant pas la capacité du plugin. Les enregistrements temporaires/Demo sont conservés après expiration et deviennent soumis à la porte d'exécution (voir Concepts de base → Système de plugins).
Le widget Converter optionnel est activé avec AddConverterWidget() et exposé via la propriété en lecture seule ConverterWidget ; ses options sont documentées sur la page du plugin Converter (Plugins → Plugin Converter).
RegisterViewer(extension, factory, defaultConfig?)
DoconutOptions RegisterViewer(
string extension, // ".myext" — leading dot optional
Func<IFormatViewer> factory,
Func<BaseConfig>? defaultConfig = null)Enregistre une visionneuse personnalisée pour une extension de fichier. Les visionneuses personnalisées ont la priorité sur les visionneuses intégrées et celles des plugins et ne sont pas soumises à la licence. Lorsque defaultConfig est omis et qu'un document s'ouvre sans configuration explicite, un ImageConfig est utilisé.
Lève ArgumentException (Extension must be a non-empty file extension.) pour une extension vide et ArgumentNullException pour une fabrique nulle.
Validation au démarrage
AddDoconut() valide les options fail-fast, de sorte qu'une mauvaise configuration se manifeste par une exception claire au démarrage plutôt que par des 404 déroutants au moment de la requête :
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.Configurations courantes
// 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";
});Lorsque vous modifiez ResourcesPath, maintenez le ResPath du widget client synchronisé (voir ViewerConfig).
MiddlewarePath n'est pas un mappage de route ASP.NET Core automatique. Si Doconut doit répondre uniquement sous un préfixe personnalisé, montez UseDoconut() sur cette branche (par exemple avec app.Map("/docs-engine", branch => branch.UseDoconut())) et définissez le BasePath du client sur la même URL.
Cette page vous a-t-elle été utile ?