DoconutOptions

Doconut hizmetlerini yapılandırın

DoconutOptions (namespace Doconut) tüm SDK için tek yapılandırma nesnesidir. Bunu bir kez, AddDoconut() içinde yapılandırırsınız ve tek bir örnek (singleton) olarak kaydedilir.

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

Özellikler

TürÖzellikVarsayılanAçıklama
boolShowDoconutInfofalsetrue olduğunda, token içermeyen bir ara katman isteği 404 yerine bir sürüm bannerı (Doconut <version> is running on <host>) döndürür. Bir sağlık kontrolü olarak faydalıdır; üretimde false bırakın.
boolUnsafeModefalsetrue olduğunda, sayfa isteklerinde ASP.NET oturum güvenlik kontrolünü atlar. Üretimde false bırakın (bkz. Temel Kavramlar → Oturumlar & Güvenlik).
stringMiddlewarePath"/doconut"Sayfa-görüntü uç noktası için koordinasyon değeri. Doğrulanır, ancak bir pipeline dalı bağlamaz; gerçek UseDoconut() eşlemesi ve istemci BasePath ile uyumlu tutun.
stringResourcesPath"/doconut-res"Gömülü JS/CSS/görüntü/font kaynakları için URL yol öneki.
stringLicensePath""Lisans dosyasının yolu. Boş → sonraki lisans kaynağı, ardından otomatik keşif; hiçbir şey bulunamazsa → yetenekleri olmayan su işareti ekli değerlendirme durumu.
stringLicenseContent""Ham XML lisans içeriği (veritabanı, ortam değişkeni, gizli yönetici). LicensePath üzerine öncelik alır.
Stream?LicenseStreamnullLisans bir akış olarak, başlangıçta bir kez okunur. Diğer iki kaynağın üzerinde öncelik alır.
boolResetLicensefalseAyrılmış uyumluluk bayrağı. Mevcut .NET 6 uygulaması bunu kullanmaz; bir lisans değiştirildikten sonra uygulamayı yeniden başlatın.
DoconutPluginRegistryPluginRegistryEklenti katkılarını toplayan salt okunur kayıt defteri; görüntüleyici fabrikası tarafından tüketilir. AddPlugin<T>() ile doldurun.

Lisans önceliği (servis kaydı sırasında uygulanır): LicenseStreamLicenseContentLicensePath → otomatik keşif (bkz. Başlarken → Lisans Kurulumu).

Yöntemler

AddPlugin<TPlugin>()

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

Bu yöntemi yayınlanan isteğe bağlı Converter ve DICOM paketleri için kullanın. Açıklama ve normal Arama, yerleşik lisanslı özelliklerdir ve AddPlugin<TPlugin>() kullanmaz.

İlk taraf bir eklentiyi (Converter, DICOM) kaydeder. Akıcı — seçenek örneğini döndürür. AddDoconut() eksik lisans, eski TRIAL dosyası veya eklentinin yeteneğini vermeyen ücretli lisans için InvalidOperationException fırlatır. Geçici/Demo kayıtları süresi dolduktan sonra da tutulur ve çalışma zamanı geçidine tabi olur (bkz. Temel Kavramlar → Eklenti Sistemi).

İsteğe bağlı Converter widget'ı AddConverterWidget() ile etkinleştirilir ve salt okunur ConverterWidget özelliği aracılığıyla sunulur; seçenekleri Converter Eklentisi sayfasında belgelenmiştir (Eklentiler → Converter Plugin).

RegisterViewer(extension, factory, defaultConfig?)

text
DoconutOptions RegisterViewer(
    string extension,                    // ".myext" — leading dot optional
    Func<IFormatViewer> factory,
    Func<BaseConfig>? defaultConfig = null)

Bir dosya uzantısı için özel görüntüleyici kaydeder. Özel görüntüleyiciler yerleşik ve eklenti görüntüleyicileri üzerine öncelik alır ve lisans kısıtlaması yoktur. defaultConfig atlandığında ve bir belge açıkça bir yapılandırma olmadan açıldığında, bir ImageConfig kullanılır.

Boş bir uzantı için ArgumentException (Extension must be a non-empty file extension.) ve null bir fabrika için ArgumentNullException fırlatır.

Başlangıç doğrulaması

AddDoconut() seçenekleri hızlı başarısızlık ile doğrular, böylece bir yapılandırma hatası istek zamanında karışık 404'ler yerine başlangıçta net bir istisna olarak ortaya çıkar:

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.

Ortak yapılandırmalar

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'i değiştirdiğinizde, istemci widget'ının ResPath değerini senkronize tutun (bkz. ViewerConfig).

MiddlewarePath otomatik bir ASP.NET Core yol eşleyicisi değildir. Doconut yalnızca özel bir önek altında yanıt vermeli ise, UseDoconut()'ı o dalda bağlayın (örneğin app.Map("/docs-engine", branch => branch.UseDoconut()) ile) ve istemci BasePath'i aynı URL'ye ayarlayın.

Bu sayfa yardımcı oldu mu?