DoconutOptions
Διαμορφώστε τις υπηρεσίες Doconut
DoconutOptions (namespace Doconut) είναι το μοναδικό αντικείμενο διαμόρφωσης για ολόκληρο το SDK. Το διαμορφώνετε μία φορά, μέσα στο AddDoconut(), και καταχωρείται ως singleton.
Αυτή είναι μια αλλαγή τόσο στην τοποθεσία όσο και στο σχήμα. Στη προηγούμενη βιβλιοθήκη .NET Standard, ένα στιγμιότυπο DoconutOptions δημιουργούνταν κατά το χρόνο του pipeline και παραδίδονταν στο UseDoconut(new DoconutOptions { … }). Εδώ το middleware δεν παίρνει καθόλου επιλογές — όλα ορίζονται κατά την καταχώρηση της υπηρεσίας.
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
options.UnsafeMode = false;
options.ShowDoconutInfo = false;
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Ιδιότητες
| Τύπος | Ιδιότητα | Προεπιλογή | Περιγραφή |
|---|---|---|---|
bool | ShowDoconutInfo | false | Όταν true, ένα αίτημα middleware χωρίς token επιστρέφει μια διαφημιστική μπάνερ έκδοσης αντί για 404. Χρήσιμο ως έλεγχος καπνού· αφήστε το false στην παραγωγή. |
bool | UnsafeMode | false | Όταν true, παραλείπεται ο έλεγχος ασφαλείας της συνεδρίας ASP.NET στα αιτήματα σελίδων. Αφήστε το false στην παραγωγή σε έναν μόνο κόμβο (δείτε Βασικές Έννοιες → Συνεδρίες & Ασφάλεια). Παλαιότερα γραμμένο ως UnSafeMode. |
string | MiddlewarePath | "/doconut" | Τιμή συντονισμού για το endpoint page-image. Επικυρώνεται, αλλά δεν δημιουργεί κλάδο pipeline· διατηρήστε το ευθυγραμμισμένο με την πραγματική αντιστοίχιση UseDoconut() και τον πελάτη BasePath. |
string | ResourcesPath | "/doconut-res" | Πρόθεμα διαδρομής URL για τους ενσωματωμένους πόρους JS/CSS/εικόνας/γραμματοσειράς. |
string | LicensePath | "" | Διαδρομή προς το αρχείο άδειας. Κενό → επόμενη πηγή άδειας, έπειτα αυτόματη ανακάλυψη· αν δεν βρεθεί τίποτα → κατάσταση αξιολόγησης με υδατογράφημα χωρίς δυνατότητες. |
string | LicenseContent | "" | Ακατέργαστο περιεχόμενο άδειας XML (βάση δεδομένων, μεταβλητή περιβάλλοντος, διαχειριστής μυστικών). Έχει προτεραιότητα έναντι του LicensePath. |
Stream? | LicenseStream | null | Άδεια ως ροή, διαβάζεται μία φορά κατά την εκκίνηση. Έχει προτεραιότητα έναντι και των άλλων δύο πηγών. |
bool | ResetLicense | false | Δεσμευμένη σημαία συμβατότητας. Η τρέχουσα υλοποίηση δεν τη χρησιμοποιεί· επανεκκινήστε την εφαρμογή μετά την αντικατάσταση μιας άδειας. |
DoconutPluginRegistry | PluginRegistry | — | Καταχωρητής μόνο για ανάγνωση που συλλέγει συνεισφορές plugin· καταναλώνεται από το εργοστάσιο προβολέα. Συμπληρώστε μέσω του AddPlugin<T>(). |
Προτεραιότητα αδειών (επιβάλλεται κατά την καταχώρηση της υπηρεσίας): LicenseStream → LicenseContent → LicensePath → αυτόματη ανακάλυψη (δείτε Ξεκινώντας → Ρύθμιση Άδειας).
Μέθοδοι
AddPlugin<TPlugin>()
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()Χρησιμοποιήστε αυτή τη μέθοδο για τα κυκλοφορημένα πακέτα Converter και DICOM με επιλογή. Η Σχόλιο και η κανονική Αναζήτηση είναι ενσωματωμένα χαρακτηριστικά με άδεια και δεν χρησιμοποιούν το AddPlugin<TPlugin>().
Καταχωρεί ένα plugin πρώτου μέρους (Converter, DICOM). Fluent — επιστρέφει το αντικείμενο επιλογών. AddDoconut() ρίχνει InvalidOperationException για έλλειψη άδειας, παλιό αρχείο TRIAL ή πληρωμένη άδεια που δεν παρέχει τη δυνατότητα του plugin. Οι προσωρινές/Δοκιμαστικές καταχωρίσεις διατηρούνται μετά τη λήξη και γίνονται υπόκεινται στην πύλη χρόνου εκτέλεσης (δείτε Βασικές Έννοιες → Σύστημα Plugin).
Το widget Converter με επιλογή ενεργοποιείται με AddConverterWidget() και εμφανίζεται μέσω της μόνο για ανάγνωση ιδιότητας ConverterWidget· οι επιλογές του τεκμηριώνονται στη σελίδα Converter Plugin (Plugins → Converter Plugin).
RegisterViewer(extension, factory, defaultConfig?)
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 κατά το χρόνο του αιτήματος:
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.Συνηθισμένες ρυθμίσεις
// Παραγωγή: ρητή άδεια, όλα κλειδωμένα (όλες οι προεπιλογές ασφαλείας)
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. Η εφαρμογή αναφοράς, αντίθετα, διατηρεί το ιστορικό σχήμα αιτήματος DocImage.axd σε έναν κλάδο MapWhen με BasePath: '/'.
Ήταν αυτή η σελίδα χρήσιμη;