Hallo,
In mijn programma wil ik alle properties van een Control opslaan in een file en daarna herladen.
Ik haal mijn properties op deze manier op:
Vrij simpel, ik schrijf nu vervolgens de List inhoud in een XML-file, met Prop.Name als ElementName en Prop.GetValue als Text.
Zo ziet het er uit.
Maar als ik de file vervolgens heb uitgelezen en naar de properties probeer te schrijven krijg ik op vrij veel properties een InvalidCastException. Ik maak gebruik van Convert.ChangeType.
Hoe krijg ik het voor elkaar om toch een String om te zetten naar bijvoorbeeld AutoSizeMode, een Color en een Size?
Mijn oplossing is op dit moment om een stuk of 50 if-statements neer te zetten om de Prop.PropertyType te vergelijken
. Dat kan toch wel makkelijker?
Alvast bedankt!!
In mijn programma wil ik alle properties van een Control opslaan in een file en daarna herladen.
Ik haal mijn properties op deze manier op:
Code:
public List<String> GetPropertiesAndValues()
{
List<String> Rtrn = new List<String>();
foreach (PropertyInfo Prop in typeof(Button).GetProperties())
{
Rtrn.Add(Prop.Name + "-" + Prop.GetValue(this, null));
}
return Rtrn;
}
Vrij simpel, ik schrijf nu vervolgens de List inhoud in een XML-file, met Prop.Name als ElementName en Prop.GetValue als Text.
HTML:
<AllowTransparency>False</AllowTransparency>
<AutoScale>False</AutoScale>
<AutoScaleBaseSize>{Width=5, Height=13}</AutoScaleBaseSize>
<AutoScroll>False</AutoScroll>
Zo ziet het er uit.
Maar als ik de file vervolgens heb uitgelezen en naar de properties probeer te schrijven krijg ik op vrij veel properties een InvalidCastException. Ik maak gebruik van Convert.ChangeType.
Code:
foreach (PropertyInfo Prop in typeof(Group).GetProperties())
{
if (Prop.Name == propertyName)
{
Prop.SetValue(this, Convert.ChangeType(propertyVal, Prop.PropertyType), null);
}
}
Hoe krijg ik het voor elkaar om toch een String om te zetten naar bijvoorbeeld AutoSizeMode, een Color en een Size?
Mijn oplossing is op dit moment om een stuk of 50 if-statements neer te zetten om de Prop.PropertyType te vergelijken

Alvast bedankt!!