ho questo problema:Come riutilizzo Tipo valore restituito per generare il codice sorgente di nuova
voglio generare un nuovo file di codice sorgente da un oggetto informazioni.
Faccio qualcosa di simile:
dictParamMapping è un Dictionary<string, Type>
in cui la stringa è un nome di variabile e tipo è il tipo di quella variabile.
ottengo il tipo di costruire il nuovo codice utilizzando:
dictParamMapping[pairProcess.Value].Type.Name (or FullName)
Quando Tipo è int, string, DataTable ecc ... tutto funziona bene, ma quando si tratta di un dizionario, la lista o di qualsiasi altro genere essa restituisce qualcosa del tipo:
System.Collections.Generic.Dictionary`2[[System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Double, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]
Quale non è corretto per costruire quel nuovo codice sorgente. Mi piacerebbe ottenere qualcosa come Dictionary<int, double>
Qualcuno può aiutarmi?
Hai esaminato ['GetGenericTypeDefinition'] (http://msdn.microsoft.com/en-us/library/system.type.getgenerictypedefinition.aspx) e [' GetGenericArguments'] (http: // msdn. microsoft.com/en-us/library/system.type.getgenericarguments.aspx)? –
Quindi vuoi ottenere l'alias C# per i tipi primitivi? – abatishchev
Per abatishchev: Sì, questa è l'idea. Per O. R. Mapper: GetGenericArguments restituisce il tipo di tipo interno ma quando una struttura di dati come Dizionario> mi obbliga a creare una funzione ricorsiva per rilevarlo. –
pasapepe