Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
FileConfigurationProviderve türetilmiş türleri (Microsoft tarafından <kullanılır. Extensions.Configuration.JsonConfigurationExtensions.AddJsonFile*>, <Microsoft. Extensions.Configuration.XmlConfigurationExtensions.AddXmlFile*> ve <Microsoft. Extensions.Configuration.IniConfigurationExtensions.AddIniFile*>) artık GÇ hatalarını ayrıştırma OnLoadException hatalarına ek olarak geri çağırmaya iletir.
Sürüm kullanıma sunulmuştur
.NET 11 Önizleme 7
Önceki davranış
Daha önce, bir yapılandırma dosyası açıldığında oluşan GÇ hataları (örneğin, AddJsonFile, AddXmlFile, AddIniFileveya diskte zaten yüklenmiş bir dosya değiştiğinde tetiklenen yeniden yükleme), geri çağırmaya geçirilene FileLoadExceptionContextOnLoadException iletilmiyordu. Yalnızca ayrıştırma hataları bu geri çağırmaya iletildi. GÇ hataları kullanılarak OnLoadExceptiongözlemlenemezdi; bunun yerine kullanılarak UnobservedTaskExceptiongözlemlenebilirdi.
Sonuç olarak, Exception geçirilen FileLoadExceptionContextOnLoadException özelliği her zaman veya InvalidDataExceptionFileNotFoundExceptionşeklindedir. Özel durumu koşulsuz olarak bu türlerden birine dönüştüren kod düzgün çalıştı.
Yeni davranış
.NET 11'den başlayarak GÇ hataları geri çağırmaya FileLoadExceptionContext geçirilene OnLoadException iletilir. GÇ hataları artık kullanılarak TaskScheduler.UnobservedTaskExceptiongözlemlenemez, ancak geri OnLoadException çağırma kaydedilmez.
Sonuç olarak, Exception üzerindeki FileLoadExceptionContext özelliği artık herhangi bir türün (en yaygın olarak IOException) özel durumu olabilir, ancak yapılandırılan IFileProvider (özel sağlayıcılar dahil) tarafından oluşan herhangi bir özel durum olabilir. Bu yeni özel durum türlerini koşulsuz olarak 'a InvalidDataException atayan veya FileNotFoundException artık bir InvalidCastException kod oluşturabilen veya sessizce yanlış işleyebilecek kod.
Kesinti yaratan değişiklik türü
Bu değişiklik davranışsal bir değişikliktir.
Değişiklik nedeni
Bu değişiklik bir hata düzeltmesidir. Yapılandırma dosyası GÇ hataları anlamlı yük hatalarıdır ve geri OnLoadException çağırma kaydeden kod, yalnızca ayrıştırma hatalarını değil, yapılandırma dosyası yüklenirken oluşan tüm hataları gözlemlemeyi bekler. Daha fazla bilgi için bkz. dotnet/runtime#113964.
Önerilen eylem
- veya kullanarak
TaskScheduler.UnobservedTaskExceptiontüretilmiş bir türden GÇ özel durumlarıFileConfigurationProvideralgıladıysanız, bu mantığı geri çağırmayaOnLoadExceptiontaşıyın. - içinde
OnLoadExceptionkayıtlı herhangi bir geri çağırmanın yalnızcaInvalidDataExceptionveyaFileNotFoundExceptiondeğil herhangi bir türdeki özel durumları işleyebildiğini doğrulayın. Koşulsuz atamalardan kaçının ve bunun yerine desen eşleştirme veya tür denetimleri kullanın.