Condividi tramite


Type.GetType genera un'eccezione per tutti i tipi di elemento non validi

Type.GetType(String) ora genera un oggetto TypeLoadException per tutti i tipi con un tipo di elemento non valido, incluso byref-of-byref. In precedenza, questo metodo restituito null per alcuni casi d'angolo.

Comportamento precedente

Type.GetType(String) ha generato un oggetto TypeLoadException per la maggior parte dei tipi con un tipo di elemento non valido, ad eccezione di alcuni casi di angolo, ad esempio byref-of-byref. Ad esempio, il codice seguente restituito null in .NET 7:

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

Nuovo comportamento

Type.GetType(String) genera un oggetto TypeLoadException per tutti i tipi con un tipo di elemento non valido, incluso byref-of-byref. Ad esempio, il codice seguente (restituito null in .NET 7) genera un'eccezione in .NET 8:

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

Versione di introduzione

.NET 8

Tipo di modifica che causa un'interruzione

Questa è una modifica funzionale.

Motivo della modifica

.NET aveva più parser di nomi di tipo e non era insolito per loro avere un comportamento diverso in casi di angolo come questo. Il comportamento è stato unificato su:

  • Se il tipo con il nome specificato non viene trovato, restituire null.
  • Se il tipo non è valido, generare TypeLoadException. I tipi "non validi" includono tipi con violazioni di vincoli generici o composizione non valida dei tipi di parametro.

Se il codice si basa su un null valore restituito per questi casi d'angolo, modificarlo invece per intercettare un oggetto TypeLoadException .

API interessate