In numerosi luoghi, ho incontrato nomi di tipi parzialmente qualificati del modulo FullTypeName, AssemblyName
, ad esempio Type.AssemblyQualifiedName
solo senza i qualificatori versione, cultura e publicKeyToken.Come Type.GetType funziona quando viene fornito un nome di tipo parzialmente qualificato?
La mia domanda è come si può convertirlo al rispettivo Type
con un minimo di sforzo? Ho pensato che lo Type.GetType
svolgesse il lavoro, ma purtroppo no. Il codice seguente, ad esempio, torna null
:
Type.GetType("System.Net.Sockets.SocketException, System");
Naturalmente, se a specificare il nome completo funziona:
Type.GetType("System.Net.Sockets.SocketException, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
Grazie mille.
Avete il tipo in fase di compilazione? In caso affermativo, perché non utilizzare typeof () .FullName, et. al? Se si dispone del tipo in fase di esecuzione, è possibile utilizzare
Sono perfettamente a conoscenza di typeof() o Type.FullName. Il tipo dell'oggetto viene letto da un file di configurazione, ecco perché uso Type.GetType. Ed è per questo che sono così interessato a capire come funzionano i nomi di tipi parzialmente qualificati. – mark