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.
Azione consigliata
Se il codice si basa su un null
valore restituito per questi casi d'angolo, modificarlo invece per intercettare un oggetto TypeLoadException .
API interessate
- GetType(String)
- GetType(String, Boolean)
- GetType(String, Boolean, Boolean)
- GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>)
- GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean)
- GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean)
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per