Definire un dataset tipizzato in modo dinamico?
-
06-09-2019 - |
Domanda
Sto cercando di creare un'istanza di un DataSet tipizzato in modo dinamico nel mio codice in fase di esecuzione. Ho il tipo a mia disposizione, ma quando provo a fare questo:
object obj = Activator.CreateInstance(Type.GetType("TYPED DATASET TYPE HERE"));
Il problema è il tipo non sembra essere valido secondo il codice quando provo ed eseguirlo. Che cosa potrei fare male qui?
Soluzione
Dove è il tipo definito? (Il quale complesso).
A meno che non si dà un assembly nome completo, apparirà solo nel chiama di montaggio, e pochi altri gruppi chiave. Opzioni:
- utilizzare un assembly nome qualificato ( "somen.amespace.sometype, someassembly, ...")
- ottenere l'istanza
Assembly
(da tipo noto in tale montaggio), e utilizzareGetType(fullyQualifiedName)
sull'istanzaAssembly
Altri suggerimenti
Supponendo che si sta emettendo il codice corretto set di dati potrebbe anche essere necessario per caricare l'assembly.
Esaminare le seguenti spazi dei nomi .net Reflection.Emit, e la riflessione.
Si potrebbe anche guardare ai progetti open source come Windsor che utilizzano riflessione per emettere nuove classi per creare intercettori. Ci può essere il codice in là che si può imparare da.