Přetypování RCW do InterfaceIsIInspectable
rozhraní vyvolává výjimku PlatformNotSupportedException
Přetypování volatelné obálky modulu runtime (RCW) do rozhraní označeného jako InterfaceIsIInspectable nyní vyvolá PlatformNotSupportedExceptionvýjimku . Tato změna je následným odebráním podpory WinRT z .NET.
Zavedená verze
.NET 5
Změna popisu
V předchozích verzích .NET přetypování RCW na rozhraní označené jako InterfaceIsIInspectable fungovalo podle očekávání. Počínaje rozhraním .NET 5 přetypujte rcW na rozhraní označené jako InterfaceIsIInspectable vyvolání PlatformNotSupportedException času přetypování.
Důvod změny
Podpora byla InterfaceIsIInspectable odebrána. Vzhledem k tomu, že základní podpora v modulu runtime již neexistuje, vyvolání PlatformNotSupportedException povolení řádné cesty selhání. Vyvolání výjimky také zvyšuje zjistitelnost, že tato funkce už není podporovaná.
Doporučená akce
Pokud můžete definovat rozhraní v souboru metadat prostředí Windows runtime (WinMD), použijte místo toho nástroj C#/WinRT.
V opačném případě označte rozhraní jako InterfaceIsIUnknown místo InterfaceIsIInspectablea přidejte tři fiktivní položky na začátek rozhraní pro InterfaceIsIInspectable metody. Následující fragment kódu ukazuje příklad.
[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. ... }