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

Προτεραιότητα άδειας (επιβάλλεται κατά την καταχώρηση υπηρεσίας): LicenseStreamLicenseContentLicensePath → αυτόματη ανίχνευση (δείτε Ξεκινώντας → Ρύθμιση Άδειας).

Μέθοδοι

AddPlugin()

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

Καταχωρεί ένα plugin πρώτου μέρους (Converter, DICOM). Η μέθοδος είναι fluent· επιστρέφει το αντικείμενο DoconutOptions. Το AddDoconut() ρίχνει InvalidOperationException εάν λείπει η άδεια, υπάρχει παλιό αρχείο TRIAL ή η πληρωμένη άδεια δεν παρέχει τη δυνατότητα του plugin. Οι προσωρινές ή δοκιμαστικές καταχωρίσεις διατηρούνται μετά τη λήξη και υπόκεινται στον μηχανισμό ελέγχου χρόνου εκτέλεσης (δείτε Βασικές Έννοιες → Σύστημα Plugins).

Το widget Converter με επιλογή opt‑in ενεργοποιείται με AddConverterWidget() και εμφανίζεται μέσω της μόνο για ανάγνωση ιδιότητας ConverterWidget. Οι επιλογές του τεκμηριώνονται στη σελίδα Converter Plugin (Πρόσθετα → Converter Plugin).

RegisterViewer(extension, factory, defaultConfig?)

Καταχωρεί έναν προσαρμοσμένο προβολέα για μια επέκταση αρχείου. Οι προσαρμοσμένοι προβολείς έχουν προτεραιότητα έναντι των ενσωματωμένων και των προβολέων plugins και δεν περιορίζονται από άδεια. Όταν το 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.

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