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.
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
options.UnsafeMode = false;
options.ShowDoconutInfo = false;
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Properties
| Tür | Özellik | Varsayılan | Açıklama |
|---|---|---|---|
bool | ShowDoconutInfo | false | true olduğunda, token olmayan bir middleware 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. |
bool | UnsafeMode | false | true olduğunda, sayfa isteklerinde ASP.NET oturum güvenlik kontrolünü atlar. Üretimde false bırakın (bkz. Core Concepts → Sessions & Security). |
string | MiddlewarePath | "/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. |
string | ResourcesPath | "/doconut-res" | Gömülü JS/CSS/görüntü/font kaynakları için URL yol ön eki. |
string | LicensePath | "" | Lisans dosyasının yolu. Boş → bir sonraki lisans kaynağı, ardından otomatik keşif; hiçbir şey bulunamazsa su işaretiyle işaretlenmiş değerlendirme durumu ve hiçbir yetenek yok. |
string | LicenseContent | "" | Ham XML lisans içeriği (veritabanı, ortam değişkeni, gizli yönetici). LicensePath üzerinde önceliklidir. |
Stream? | LicenseStream | null | Lisans bir akış olarak, başlangıçta bir kez okunur. Diğer iki kaynağın üzerinde önceliklidir. |
bool | ResetLicense | false | Ayrılmış uyumluluk bayrağı. Mevcut .NET 8 uygulaması bunu kullanmaz; bir lisans değiştirildikten sonra uygulamayı yeniden başlatın. |
DoconutPluginRegistry | PluginRegistry | — | Eklenti katkılarını toplayan yalnızca okunabilir 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): LicenseStream → LicenseContent → LicensePath → otomatik keşif (bkz. Getting Started → License Setup).
Methods
AddPlugin<TPlugin>()
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ı kısıtlamasına tabi olur (bkz. Core Concepts → Plugin System).
İsteğe bağlı Converter widget'ı AddConverterWidget() ile etkinleştirilir ve yalnızca okunabilir ConverterWidget özelliği aracılığıyla sunulur; seçenekleri Converter Plugin sayfasında belgelenmiştir (Plugins → Converter Plugin).
RegisterViewer(extension, factory, defaultConfig?)
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 üzerinde önceliklidir ve lisans kısıtlamasına tabi değildir. 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.
Startup validation
AddDoconut() seçenekleri hızlı hata (fail-fast) olarak doğrular, böylece bir yapılandırma hatası, istek zamanında karışık 404 hataları yerine başlangıçta net bir istisna olarak ortaya çıkar:
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
// 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 rota eşleyicisi değildir. Doconut'un yalnızca özel bir önek altında yanıt vermesini istiyorsanız, UseDoconut()'u 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?