DoconutOptions
Konfiguruj usługi Doconut
DoconutOptions (namespace Doconut) jest jedynym obiektem konfiguracyjnym dla całego SDK. Konfigurujesz go raz, wewnątrz AddDoconut(), i jest rejestrowany jako singleton.
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
options.UnsafeMode = false;
options.ShowDoconutInfo = false;
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Properties
| Typ | Właściwość | Domyślne | Opis |
|---|---|---|---|
bool | ShowDoconutInfo | false | Gdy true, żądanie middleware bez tokenu zwraca baner wersji (Doconut <version> is running on <host>) zamiast 404. Przydatne jako szybki test; pozostaw false w środowisku produkcyjnym. |
bool | UnsafeMode | false | Gdy true, pomija kontrolę bezpieczeństwa sesji ASP.NET przy żądaniach stron. Pozostaw false w produkcji (zobacz Core Concepts → Sessions & Security). |
string | MiddlewarePath | "/doconut" | Wartość koordynacji dla punktu końcowego page-image. Jest walidowana, ale nie montuje gałęzi potoku; utrzymuj ją zgodną z rzeczywistym mapowaniem UseDoconut() i klientem BasePath. |
string | ResourcesPath | "/doconut-res" | Prefiks ścieżki URL dla osadzonych zasobów JS/CSS/obrazów/czcionek. |
string | LicensePath | "" | Ścieżka do pliku licencji. Pusta → następne źródło licencji, potem automatyczne wykrywanie; brak wyniku → stan oceny z znakiem wodnym bez możliwości. |
string | LicenseContent | "" | Surowa zawartość licencji XML (baza danych, zmienna środowiskowa, menedżer sekretów). Ma pierwszeństwo przed LicensePath. |
Stream? | LicenseStream | null | Licencja jako strumień, odczytywana raz przy uruchomieniu. Ma pierwszeństwo przed obiema innymi źródłami. |
bool | ResetLicense | false | Zarezerwowany znacznik kompatybilności. Obecna implementacja .NET 8 go nie wykorzystuje; uruchom ponownie aplikację po wymianie licencji. |
DoconutPluginRegistry | PluginRegistry | — | Rejestr tylko do odczytu zbierający wkłady wtyczek; wykorzystywany przez fabrykę przeglądarek. Wypełnij za pomocą AddPlugin<T>(). |
Priorytet licencji (wyegzekwowany przy rejestracji usług): LicenseStream → LicenseContent → LicensePath → automatyczne wykrywanie (zobacz Getting Started → License Setup).
Methods
AddPlugin<TPlugin>()
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()Użyj tej metody dla wydanych pakietów Converter i DICOM z opcją opt-in. Adnotacje i normalne wyszukiwanie są wbudowanymi funkcjami licencjonowanymi i nie używają AddPlugin<TPlugin>().
Rejestruje wtyczkę pierwszej strony (Converter, DICOM). Fluent — zwraca instancję opcji. AddDoconut() rzuca InvalidOperationException przy brakującej licencji, starszym pliku TRIAL lub płatnej licencji, która nie przyznaje możliwości wtyczki. Rejestracje tymczasowe/demo są zachowywane po wygaśnięciu i podlegają bramce w czasie wykonywania (zobacz Core Concepts → Plugin System).
Widżet Converter z opcją opt-in jest włączony za pomocą AddConverterWidget() i udostępniony poprzez właściwość tylko do odczytu ConverterWidget; jego opcje są udokumentowane na stronie wtyczki Converter (Plugins → Converter Plugin).
RegisterViewer(extension, factory, defaultConfig?)
DoconutOptions RegisterViewer(
string extension, // ".myext" — kropka początkowa opcjonalna
Func<IFormatViewer> factory,
Func<BaseConfig>? defaultConfig = null)Rejestruje niestandardową przeglądarkę dla rozszerzenia pliku. Niestandardowe przeglądarki mają pierwszeństwo przed wbudowanymi i przeglądarkami wtyczek i nie są ograniczone licencją. Gdy defaultConfig jest pominięte i dokument otwiera się bez wyraźnej konfiguracji, używany jest ImageConfig.
Rzuca ArgumentException (Extension must be a non-empty file extension.) przy pustym rozszerzeniu i ArgumentNullException przy null factory.
Startup validation
AddDoconut() waliduje opcje fail-fast, więc nieprawidłowa konfiguracja objawia się jako wyraźny wyjątek przy starcie zamiast mylących 404 w czasie żądania:
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.Common configurations
// Produkcja: jawna licencja, wszystko zabezpieczone (wszystkie domyślne ustawienia bezpieczeństwa)
builder.Services.AddDoconut(options =>
{
options.LicenseContent = builder.Configuration["Doconut:License"] ?? "";
});
// Niestandardowe ścieżki (np. aby uniknąć konfliktu trasy)
builder.Services.AddDoconut(options =>
{
options.MiddlewarePath = "/docs-engine";
options.ResourcesPath = "/docs-assets";
});Gdy zmieniasz ResourcesPath, utrzymuj ResPath widżetu klienta w synchronizacji (zobacz ViewerConfig).
MiddlewarePath nie jest automatycznym mapowaniem tras ASP.NET Core. Jeśli Doconut ma odpowiadać tylko pod niestandardowym prefiksem, zamontuj UseDoconut() na tej gałęzi (na przykład za pomocą app.Map("/docs-engine", branch => branch.UseDoconut())) i ustaw klienta BasePath na ten sam URL.
Czy ta strona była pomocna?