RCW'yi bir InterfaceIsIInspectable
arabirime atama PlatformNotSupportedException oluşturur
Artık olarak InterfaceIsIInspectable işaretlenmiş bir arabirime çalışma zamanı çağrılabilen sarmalayıcı (RCW) ataması bir PlatformNotSupportedExceptionoluşturur. Bu değişiklik, .NET'ten WinRT desteğinin kaldırılmasına ilişkin bir izlemedir.
Sürüm kullanıma sunulmuştur
.NET 5
Açıklama değiştirildi
Önceki .NET sürümlerinde, RCW'yi beklendiği gibi çalıştı olarak InterfaceIsIInspectable işaretlenmiş bir arabirime atama. .NET 5'te başlayarak RCW'yi olarak InterfaceIsIInspectable işaretlenmiş bir arabirime atama, yayın zamanında bir PlatformNotSupportedException oluşturur.
Değişiklik nedeni
desteği InterfaceIsIInspectablekaldırıldı. Çalışma zamanında temel alınan destek artık mevcut olmadığından, oluşturma PlatformNotSupportedException , düzgün bir hata yolunu etkinleştirir. Özel durum oluşturma, bu özelliğin artık desteklenmemesini daha kolay bulunabilir hale getirir.
Önerilen eylem
Arabirimi bir Windows çalışma zamanı meta verileri (WinMD) dosyasında tanımlayabilirseniz bunun yerine C#/WinRT aracını kullanın.
Aksi takdirde, arabirimi yerine InterfaceIsIInspectableolarak InterfaceIsIUnknown işaretleyin ve yöntemlerin InterfaceIsIInspectable arabiriminin başlangıcına üç kukla girdi ekleyin. Aşağıdaki kod parçacığı bir örnek gösterir.
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] interface IMine { // Do not call these three methods. // They're exclusively to fill in the slots in the vtable. void GetIIdsSlot(); void GetRuntimeClassNameSlot(); void GetTrustLevelSlot(); // The original members of the IMine interface go here. ... }
Etkilenen API’ler
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin