Dato che ho un tipo "Wibble.Wobble" che esiste in un assembly "Foo.Bar"esistenti di classe/metodo per l'analisi Tipo nome completo
E che assembly non viene caricato nel principali applicazioni contesto carico
esiste un meccanismo di pubblica esistente per l'analisi del seguente stringa nelle sue parti successive:
"Wibble.Wobble, Foo.Bar, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xyz"
la ragione di chiedere è che Ho bisogno di caricare una varietà di tipi in fase di esecuzione, alcuni dei quali potrebbero trovarsi nel contesto di caricamento corrente. Potrebbe essere necessario caricare altri da un assieme esterno.
So come caricare i tipi dal contesto di carico corrente Type.GetType("typename")
, so come caricare un assembly e ottenere un tipo da esso Assembly.LoadFile("xyz").GetType("abc")
. Quello che sto avendo problemi è che se provate a caricare un tipo da un assembly non dovrebbe essere un nome completo dove è possibile quando si utilizza Type.GetType
.
La soluzione non dovrebbe essere così complicata, è sufficiente suddividere la stringa prima della prima virgola. Tuttavia, volevo sapere se c'era un modo per ottenere il nome completo come rappresentazione di un oggetto, quindi non dovevo farlo e sarebbe stato utile per localizzare l'assembly corretto senza dover scorrere un'intera directory.
indexof fornisce la prima occorrenza di una virgola, che potrebbe essere utilizzata come separatore negli argomenti generici. Non sarebbe bello –
@DavidSchmitt Fair point, non ho ancora avuto a che fare con questo scenario ma ho aggiornato l'esempio per usare LastIndexOf invece di IndexOf. Grazie per il consiglio. – Bronumski
Con LastIndexOf, potrebbe non funzionare mai, si consideri System.String, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089 l'ultimo indice di otterrà solo la parte PublicKeyToken – Alex