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 olarak kaydedilir.
Bu, konumda olduğu kadar biçimde de bir değişikliktir. Önceki .NET Standard kitaplığında bir DoconutOptions örneği pipeline zamanında oluşturulur ve UseDoconut(new DoconutOptions { … })'a aktarılırdı. Burada middleware hiç seçenek almaz — her şey hizmet kaydı sırasında ayarlanır.
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
options.UnsafeMode = false;
options.ShowDoconutInfo = false;
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Özellikler
| Tür | Özellik | Varsayılan | Açıklama |
|---|---|---|---|
bool | ShowDoconutInfo | false | true olduğunda, token olmadan bir middleware isteği 404 yerine bir sürüm bannerı döndürür. Duman 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. Tek bir düğümde üretimde false bırakın (bkz. Core Concepts → Sessions & Security). Önceden UnSafeMode olarak yazılmıştı. |
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 öneki. |
string | LicensePath | "" | Lisans dosyasının yolu. Boş → sonraki lisans kaynağı, ardından otomatik keşif; hiçbir şey bulunamazsa su işareti eklenmiş 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'e göre önceliklidir. |
Stream? | LicenseStream | null | Lisans bir akış olarak, başlangıçta bir kez okunur. Diğer iki kaynağa göre önceliklidir. |
bool | ResetLicense | false | Ayrılmış uyumluluk bayrağı. Mevcut uygulama bunu kullanmaz; bir lisans değiştirildikten sonra uygulamayı yeniden başlatın. |
DoconutPluginRegistry | PluginRegistry | — | Eklenti katkılarını toplayan salt okunur kayıt; 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).
Yöntemler
AddPlugin<TPlugin>()
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()Bu yöntemi yayımlanmış 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ı kapısına tabi olur (bkz. Core Concepts → Plugin System).
İsteğe bağlı Converter widget'ı AddConverterWidget() ile etkinleştirilir ve salt okunur 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üleyicilere göre ö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.
Başlangıç doğrulaması
AddDoconut() seçenekleri hızlı başarır (fail-fast) şekilde doğrular, böylece bir yanlış yapılandırma istek zamanındaki kafa karıştırıcı 404'ler 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.Yaygın yapılandırmalar
// 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'ini senkronize tutun (bkz. ViewerConfig). Bu, hata mesajı olmadan başarısız olan iki istemci tarafı ayardan biridir.
MiddlewarePath otomatik bir ASP.NET Core rota 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. Referans uygulama ise tarihsel DocImage.axd istek şeklini BasePath: '/' ile bir MapWhen dalında tutar.
Bu sayfa yardımcı oldu mu?