DoconutExtensions
Servis ve ara katman kaydı
DoconutExtensions (namespace Doconut.Middleware) her Doconut ana bilgisayarının yaptığı üç çağrıyı içeren statik sınıftır: bir hizmet kaydı ve iki ara katman kaydı.
builder.Services.AddDoconut(options => { /* … */ });
// …
app.UseDoconutResources(); // BEFORE UseDoconut()
app.UseDoconut();AddDoconut (Ekle)
IServiceCollection AddDoconut(this IServiceCollection services, Action<DoconutOptions>? configure = null)DoconutOptions oluşturur, hızlı hata kontrolü yapar (bkz. DoconutOptions → Başlangıç doğrulaması) ve tam hizmet grafiğini kaydeder:
| Servis | Ömür | Rol |
|---|---|---|
DoconutOptions | Singleton | Yapılandırma nesnesi |
IViewerFactory | Singleton | Uzantıları format görüntüleyicilerine eşler |
IDocumentSessionManager | Singleton | Token → oturum önbelleği (IMemoryCache de kaydedilir) |
IDoconutLicenseService | Singleton | Lisans başlangıçta bir kez yüklenir (öncelik: LicenseStream → LicenseContent → LicensePath → otomatik arama) |
PageImageService | Singleton | Sayfa‑görüntü işlem hattı (filigran/döndürme/ölçekleme/annotasyonlar) |
| Document security (access store) | Singleton | Token‑oturum bağlaması için izinler |
Viewer | Transient | Kamu açık/kapalı arayüzü |
DocumentConverter | Transient | Dönüştürme arayüzü — Converter eklentisi gerekir |
Sağlık kontrolü "doconut" | — | Lisans/son kullanma durumunu ASP.NET sağlık kontrolleri aracılığıyla raporlar |
Bilmeniz gereken iki davranış:
- Converter eklentisi gerekir.
DocumentConverter'ıoptions.AddPlugin<ConverterPlugin>()olmadan çözümlemeye çalışmak şu hatayı verir:
InvalidOperationException: No IDocumentConverter is registered. Add the converter plugin: options.AddPlugin<Doconut.Plugins.Converter.ConverterPlugin>().- Eklenti yetkisi başlangıçta doğrulanır. Eksik bir lisans, eski
TRIALdosyası veya kayıtlı bir eklentinin yeteneği olmadan alınan ücretli lisansAddDoconut()sırasında başarısız olur. Geçici/Demo kayıtları son kullanma tarihlerini geçse bile devam eder, ancak çalışma zamanındaki kontroller süresi dolmuş yetenekleri iptal eder.
Sağlık kontrolü standart ASP.NET Core mekanizmasıyla bütünleşir — lisans durumunu sağlık uç noktanızda görmek istiyorsanız haritalayın:
app.MapHealthChecks("/health");UseDoconut (Kullan)
IApplicationBuilder UseDoconut(this IApplicationBuilder app)Doconut sayfa‑görüntü ara katmanını ekler. ?token= sorgu parametresini taşıyan her isteğe yanıt verir — sayfalar, küçük resimler, arama, annotasyonlar, sayfa eylemleri (tam istek tablosu Core Concepts → How the Viewer Works içinde bulunur). UnsafeMode false olduğunda, belge‑güvenlik katmanı otomatik olarak önceden bağlanır.
Referans örneği, widget isteklerini bir yol dalı üzerinden yönlendirir:
app.MapWhen(
ctx => ctx.Request.Path.Value?.EndsWith("DocImage.axd", StringComparison.OrdinalIgnoreCase) == true,
branch => branch.UseDoconut());UseDoconutResources (Kaynakları Kullan)
IApplicationBuilder UseDoconutResources(this IApplicationBuilder app)DoconutOptions.ResourcesPath (varsayılan /doconut-res) konumunda gömülü JS, CSS, görüntüler ve yazı tiplerini sunar. Bunlar Viewer.ReferenceCss() / ReferenceScripts() tarafından etiket üreten dosyalardır.
Her zaman UseDoconut()'dan önce çağırın. Görüntüleyici alanı boş kalır ve tarayıcı konsolu /doconut-res/... için 404 hataları gösteriyorsa, bu çağrı eksik ya da yanlış konumda demektir.
Sıralama Özeti
app.UseRouting();
app.UseSession(); // required when UnsafeMode = false
app.UseDoconutResources(); // 1st Doconut call
app.UseDoconut(); // 2nd Doconut call (or via a MapWhen branch)Bu sayfa yardımcı oldu mu?