Sdílet prostřednictvím


Type.GetType vyvolá výjimku pro všechny neplatné typy elementů.

Type.GetType(String) nyní vyvolá TypeLoadException pro všechny typy s neplatným typem prvku, včetně byref-of-byref. Dříve se tato metoda vrátila null pro některé rohové případy.

Předchozí chování

Type.GetType(String) Hodil TypeLoadException pro většinu typů s neplatným typem prvku, s výjimkou několika rohových případů, jako je byref-of-byref. Například následující kód vrácený null v .NET 7:

Type.GetType("System.Object&&")

Nové chování

Type.GetType(String)TypeLoadException vyvolá pro všechny typy s neplatným typem prvku, včetně byref-of-byref. Například následující kód (vrácený null v .NET 7) vyvolá výjimku v .NET 8:

Type.GetType("System.Object&&")

Zavedená verze

.NET 8

Typ zásadní změny

Tato změna je změna chování.

Důvod změny

Rozhraní .NET mělo více analyzátorů názvů typů a pro ně nebylo neobvyklé, že se v různých případech, jako je tento, chová různě. Chování bylo sjednocené na:

  • Pokud typ s daným názvem nebyl nalezen, vraťte null.
  • Pokud je typ neplatný, vyhoďte TypeLoadException. Neplatné typy zahrnují typy s obecnými porušeními omezení nebo neplatným složením typů parametrů.

Pokud váš kód pro tyto případy spoléhal na návratovou null hodnotu, změňte ho tak, aby se místo toho zachytil TypeLoadException .

Ovlivněná rozhraní API