fondamentalmente sto costruendo un modello T4 molto generico e una delle cose che ho bisogno di fare è dire stampa variable.ToString()
. Tuttavia, voglio che valuti gli elenchi e li foreach attraverso loro e invece stampa ListItem.ToString()
Il mio modello T4 non sa che tipo variable
sarà in anticipo, ecco perché questo è così generico.Come verificare se una variabile è un oggetto IEnumerable
Ma il mio codice corrente che viene generato assomiglia a questo:
if(variable!=null)
if(variable is IEnumerable) //error here
foreach(var item in variable)
Write(item.ToString());
ottengo un errore di compilazione sulla linea marcata per "Utilizzo del tipo generico System.Generic.Collections.IEnumerable richiede un tipo di argomento"
In realtà non mi importa di che tipo sia, voglio solo sapere se è possibile forzare attraverso la variabile. Quale codice dovrei usare invece?
Sembra che potrebbe essere la risposta migliore in realtà. – Earlz
Ho cambiato la risposta perché ho finito per usare questo metodo, che a mio parere è molto più pulito. – Earlz
Inoltre, per aggirare il bug Mono menzionato di seguito, ho dovuto eseguire il comando 'variable' su' object' prima. – Earlz