IronPrint'te ShowPrintDialog Davranışı (2024.9 Sonrası)
ShowPrintDialog ve ShowPrintDialogAsync, desteklenmeyen bir hedef çerçevesinde çağrıldığında artık bir istisna fırlatmıyor. 2024.9 sürümünden itibaren, bir uyarı kaydediyor ve bunun yerine PrintAsync()'ye dönüş yapıyor.
Bu değişiklikten önce, uyumlu bir TargetFramework olmadan her iki yöntemi çağırmak aşağıdaki hatayı veriyordu:
System.AggregateException: 'One or more errors occurred.
(Please try Print/PrintAsync since ShowPrintDialog/ShowPrintDialogAsync in NET Core or NET Standard,
it required UI component so please set more specific OS TargetFrameworks
e.g. net462; net472; net7.0-windows; net7.0-macos; net7.0-maccatalyst; net7.0-android)'
Diyalog metodlarının bir UI bileşenine ihtiyacı vardır; bu, düz .NET Çekirdeği veya .NET Standard hedeflerinde mevcuttur değil. Önceki yapılar bunu bir sert hata olarak değerlendirdi ve attı. İstisna çalıştırma zamanında kesintiye neden olduğundan, davranış 2024.9'da kasıtlı olarak değiştirildi.
Çözüm
Geriye dönük kayıta kalıcıdır, ancak doğru yolu seçerek hangi yolun çalışacağını kontrol edebilirsiniz.
1. Otomatik Geri Dönüş Rely On
Desteklenmeyen bir çerçevede, çağrı artık bir uyarı kaydediyor ve atmak yerine PrintAsync()'ye yönlendiriyor. Mevcut kod bir çökme olmadan çalışmaya devam eder, ancak herhangi bir yazdırma diyaloğu görünmez.
2. Diyalog için UI-Uygun Çerçeveyi Hedefleyin
Gerçek yazdırma diyalogunu almak için UI desteğini içeren bir işletim sistemine özgü hedefe karşı derleyin:
<TargetFrameworks>net462;net472;net7.0-windows;net7.0-macos;net7.0-maccatalyst;net7.0-android</TargetFrameworks>
<TargetFrameworks>net462;net472;net7.0-windows;net7.0-macos;net7.0-maccatalyst;net7.0-android</TargetFrameworks>
Bu çerçevelerden biri var olduğunda, ShowPrintDialog ve ShowPrintDialogAsync beklenildiği gibi iletişim kutusunu gösteriyor.

