Ho un file contenente alcune variabili di una classe e ogni riga è una coppia: variabile , valore. Sto cercando un modo per caricare questi in fase di esecuzione (a-la XmlSerializer
), utilizzando la riflessione.C# Parse string per digitare noto al runtime
C'è un modo per analizzare uno string
in un Type
noto solo in fase di esecuzione?
Il seguente è un esempio di codice desiderio dove l'ultima riga (con la pi.SetValue()
non è corretto, perché PropertyType
è di classe Type
che non ha un metodo generico Parse()
.
using (var sr = new StreamReader(settingsFileName))
{
String line;
while ((line = sr.ReadLine()) != null)
{
String[] configValueStrs = line.Trim().Split(seps);
PropertyInfo pi = configurableProperties
.Single(p => p.Name == configValueStrs[0].Trim());
//How do I manage this?
pi.SetValue(this, pi.PropertyType.Parse(configValueStrs[1].Trim()), null);
}
}
Poiché tutte pertinente le variabili sono Ints, Doubles, Stringhe o Booleans, come ultima risorsa, posso attivare il tipo e utilizzare il metodo ToType()
corrispondente, ma scommetto che esiste una soluzione più elegante
Controllare questo: http: //chrismarinos.com/default-typeconverters-and-objects/ Anche nella mia esperienza personale, l'implementazione di default non può fare nulla. – Peter