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.

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

Properties

TypWłaściwośćDomyślneOpis
boolShowDoconutInfofalseGdy 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.
boolUnsafeModefalseGdy true, pomija kontrolę bezpieczeństwa sesji ASP.NET przy żądaniach stron. Pozostaw false w produkcji (zobacz Core Concepts → Sessions & Security).
stringMiddlewarePath"/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.
stringResourcesPath"/doconut-res"Prefiks ścieżki URL dla osadzonych zasobów JS/CSS/obrazów/czcionek.
stringLicensePath""Ś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.
stringLicenseContent""Surowa zawartość licencji XML (baza danych, zmienna środowiskowa, menedżer sekretów). Ma pierwszeństwo przed LicensePath.
Stream?LicenseStreamnullLicencja jako strumień, odczytywana raz przy uruchomieniu. Ma pierwszeństwo przed obiema innymi źródłami.
boolResetLicensefalseZarezerwowany znacznik kompatybilności. Obecna implementacja .NET 8 go nie wykorzystuje; uruchom ponownie aplikację po wymianie licencji.
DoconutPluginRegistryPluginRegistry—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>()

text
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?)

text
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:

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.

Common configurations

csharp
// 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?