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 στην παραγωγή (δείτε Core Concepts → Sessions & Security).
stringMiddlewarePath"/doconut"Τιμή συντονισμού για το endpoint page-image. Επικυρώνεται, αλλά δεν δημιουργεί κλάδο pipeline· κρατήστε το ευθυγραμμισμένο με την πραγματική αντιστοίχηση UseDoconut() και τον πελάτη BasePath.
stringResourcesPath"/doconut-res"Πρόθεμα διαδρομής URL για τους ενσωματωμένους πόρους JS/CSS/εικόνα/γραμματοσειρά.
stringLicensePath""Διαδρομή προς το αρχείο άδειας. Κενό → επόμενη πηγή άδειας, έπειτα αυτόματη ανίχνευση· αν δεν βρεθεί τίποτα → κατάσταση αξιολόγησης με υδατογράφημα χωρίς δυνατότητες.
stringLicenseContent""Ακατέργαστο περιεχόμενο άδειας XML (βάση δεδομένων, μεταβλητή περιβάλλοντος, διαχειριστής μυστικών). Έχει προτεραιότητα έναντι LicensePath.
Stream?LicenseStreamnullΆδεια ως ροή, διαβάζεται μία φορά κατά την εκκίνηση. Έχει προτεραιότητα έναντι και των άλλων πηγών.
boolResetLicensefalseΔεσμευμένη σημαία συμβατότητας. Η τρέχουσα υλοποίηση .NET 8 δεν την χρησιμοποιεί· επανεκκινήστε την εφαρμογή μετά την αντικατάσταση άδειας.
DoconutPluginRegistryPluginRegistry—Καταχωρητής μόνο για ανάγνωση που συλλέγει συνεισφορές plugin· χρησιμοποιείται από το εργοστάσιο προβολέα. Συμπληρώστε μέσω AddPlugin<T>().

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

Μέθοδοι

AddPlugin<TPlugin>()

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

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

Καταχωρεί ένα plugin πρώτου μέρους (Converter, DICOM). Fluent — επιστρέφει το αντικείμενο επιλογών. AddDoconut() ρίχνει InvalidOperationException για έλλειψη άδειας, αρχείο legacy 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" — προαιρετικό το αρχικό σημείο
    Func<IFormatViewer> factory,
    Func<BaseConfig>? defaultConfig = null)

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

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

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

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
// Παραγωγή: ρητή άδεια, όλα κλειδωμένα (όλες οι προεπιλογές ασφαλείας)
builder.Services.AddDoconut(options =>
{
    options.LicenseContent = builder.Configuration["Doconut:License"] ?? "";
});

// Προσαρμοσμένες διαδρομές (π.χ. για να αποφευχθεί μια σύγκρουση διαδρομής)
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.

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