DoconutOptions

Διαμορφώστε τις υπηρεσίες Doconut

DoconutOptions (namespace Doconut) είναι το μοναδικό αντικείμενο διαμόρφωσης για ολόκληρο το SDK. Το διαμορφώνετε μία φορά, μέσα στο AddDoconut(), και καταχωρείται ως singleton.

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

Ιδιότητες

ΤύποςΙδιότηταΠροεπιλογήΠεριγραφή
boolShowDoconutInfofalseΌταν είναι true, ένα αίτημα middleware χωρίς διακριτικό επιστρέφει μια μπάνερ έκδοσης (Doconut <version> is running on <host>) αντί για 404. Χρήσιμο ως γρήγορος έλεγχος· αφήστε το false στην παραγωγή.
boolUnsafeModefalseΌταν είναι true, παραλείπει τον έλεγχο ασφαλείας της συνεδρίας ASP.NET στα αιτήματα σελίδας. Αφήστε το false στην παραγωγή (δείτε Core Concepts → Sessions & Security).
stringMiddlewarePath"/doconut"Τιμή συντονισμού για το endpoint σελίδας‑εικόνας. Επικυρώνεται, αλλά δεν δημιουργεί κλάδο pipeline· διατηρήστε το ευθυγραμμισμένο με την πραγματική αντιστοίχιση UseDoconut() και το BasePath του πελάτη.
stringResourcesPath"/doconut-res"Πρόθεμα διαδρομής URL για τους ενσωματωμένους πόρους JS/CSS/εικόνας/γραμματοσειράς.
stringLicensePath""Διαδρομή προς το αρχείο άδειας. Κενό → επόμενη πηγή άδειας, έπειτα αυτόματη ανακάλυψη· αν δεν βρεθεί τίποτα → κατάσταση αξιολόγησης με υδατογράφημα χωρίς δυνατότητες.
stringLicenseContent""Ακατέργαστο περιεχόμενο άδειας XML (βάση δεδομένων, μεταβλητή περιβάλλοντος, διαχειριστής μυστικών). Έχει προτεραιότητα έναντι του LicensePath.
Stream?LicenseStreamnullΆδεια ως ροή, διαβάζεται μία φορά κατά την εκκίνηση. Έχει προτεραιότητα έναντι και των άλλων δύο πηγών.
boolResetLicensefalseΔεσμευμένη σημαία συμβατότητας. Η τρέχουσα υλοποίηση .NET 6 δεν τη χρησιμοποιεί· επανεκκινήστε την εφαρμογή μετά την αντικατάσταση μιας άδειας.
DoconutPluginRegistryPluginRegistryΚαταχωρητής μόνο για ανάγνωση που συλλέγει συνεισφορές plugin· χρησιμοποιείται από το εργοστάσιο προβολέα. Συμπληρώστε το μέσω AddPlugin<T>().

Προτεραιότητα άδειας (επιβάλλεται κατά την καταχώρηση της υπηρεσίας): LicenseStreamLicenseContentLicensePath → αυτόματη ανακάλυψη (δείτε Getting Started → License Setup).

Μέθοδοι

AddPlugin()()

text
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()

Χρησιμοποιήστε αυτή τη μέθοδο για τα κυκλοφορημένα πακέτα Converter και DICOM με επιλογή ενεργοποίησης. Η Σημείωση και η κανονική Αναζήτηση είναι ενσωματωμένες αδειοδοτημένες λειτουργίες και δεν χρησιμοποιούν το AddPlugin<TPlugin>().

Καταχωρεί ένα plugin πρώτου μέρους (Converter, DICOM). Fluent — επιστρέφει το αντικείμενο options. Το AddDoconut() ρίχνει InvalidOperationException για έλλειψη άδειας, παλιό αρχείο TRIAL ή επί πληρωμή άδεια που δεν παρέχει τη δυνατότητα του plugin. Οι προσωρινές/Δοκιμαστικές καταχωρίσεις διατηρούνται μετά τη λήξη και υπόκεινται στην πύλη χρόνου εκτέλεσης (δείτε Core Concepts → Plugin System).

Το widget Converter με επιλογή ενεργοποίησης ενεργοποιείται με AddConverterWidget() και εμφανίζεται μέσω της μόνο για ανάγνωση ιδιότητας ConverterWidget; οι επιλογές του τεκμηριώνονται στη σελίδα 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)

Καταχωρεί έναν προσαρμοσμένο προβολέα για μια επέκταση αρχείου. Οι προσαρμοσμένοι προβολείς έχουν προτεραιότητα έναντι των ενσωματωμένων και των προβολέων plugin και δεν περιορίζονται από άδεια. Όταν το defaultConfig παραλείπεται και ένα έγγραφο ανοίγει χωρίς ρητή ρύθμιση, χρησιμοποιείται ένα ImageConfig.

Ρίχνει ArgumentException (Extension must be a non-empty file extension.) για κενή επέκταση και ArgumentNullException για null εργοστασιακό αντικείμενο.

Επικύρωση εκκίνησης

AddDoconut() επικυρώνει τις επιλογές fail‑fast, έτσι μια λανθασμένη διαμόρφωση εμφανίζεται ως σαφής εξαίρεση κατά την εκκίνηση αντί για συγκεχυμένα 404 κατά το χρόνο αιτήματος:

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.

Συνηθισμένες διαμορφώσεις

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";
});

Όταν αλλάζετε το ResourcesPath, διατηρήστε το ResPath του widget πελάτη συγχρονισμένο (δείτε ViewerConfig).

Το MiddlewarePath δεν είναι αυτόματος χάρτης διαδρομών ASP.NET Core. Αν το Doconut πρέπει να απαντά μόνο κάτω από ένα προσαρμοσμένο πρόθεμα, τοποθετήστε το UseDoconut() σε αυτόν τον κλάδο (π.χ. με app.Map("/docs-engine", branch => branch.UseDoconut())) και ορίστε το BasePath του πελάτη στην ίδια URL.

Ήταν αυτή η σελίδα χρήσιμη;