272 messaggi dal 17 settembre 2006
Buon Giorno,
qualcuno sa indicarmi come convertire una stringa in classe generica da passare ad un IEnumerable<T>

Es.

Type T = p.GetType("MIACLASSE");  
var result = HttpContext.Session["Export"] as IEnumerable<T>;

Come sopra non funziona.
T non viene riconusciuto.

sicuramente salto qualche passaggio
Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
purtroppo non si può fare perché, in quel contesto, T è una variabile ma la classe generica IEnumerable si aspetta invece che tu indichi il nome di un tipo, che deve essere noto a compile time e non determinato dinamicamente a runtime.

Se ti è sufficiente, puoi fare il casting ad IEnumerable, cioè l'interfaccia non generica.
var result = HttpContext.Session["Export"] as IEnumerable;


In alternativa, se hai bisogno di invocare dinamicamente un metodo che si aspetta proprio quel IEnumerable<T>, allora devi usare la reflection (che non funzionerà se il tuo hosting provider ti offre uno spazio in regime di medium trust).
http://stackoverflow.com/questions/232535/how-to-use-reflection-to-call-generic-method#answer-232621

ciao,
Moreno
Modificato da BrightSoul il 24 aprile 2015 00.14 -

Enjoy learning and just keep making
272 messaggi dal 17 settembre 2006
var result = HttpContext.Session["Export"] as IEnumerable;


Effettivamente mi è stato sufficiente. Con un po di reflection si riesce anche a ciclare i dati per visualizzarli in un PDF con itextsharp

Grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.