С# Как перебрать свойства Properties.Settings.Default.Properties, изменяя значения
У меня есть следующий код:
foreach (SettingsProperty currentProperty in Properties.Settings.Default.Properties)
{
if (Double.TryParse(GenerateValue()), out result))
{
currentProperty.DefaultValue = result.ToString();
Properties.Settings.Default.Save();
}
}
Получает новое значение из базы данных mysql. Если я добавлю MessageBox.Show, чтобы показать новое значение, похоже, он работает нормально, но на самом деле он не сохраняет его. Я предполагаю, что это потому, что я присваиваю значение переменной... есть ли способ сделать это?
Properties.Settings.Default.IndexOf(currentProperty.name).DefaultValue = result
Ответы
Ответ 1
Это может сработать:
foreach (SettingsProperty currentProperty in Properties.Settings.Default.Properties)
{
Properties.Settings.Default[currentProperty.Name] = result.ToString();
Properties.Settings.Default.Save();
}
Имейте в виду, что свойства должны иметь область "Пользователь" для сохранения.
Ответ 2
Я бы согласился с вашим заключением. То, что вам нужно сделать, это получить свойство по строковому значению.
Properties.Settings.Default[string value] =
foreach (SettingsProperty currentProperty in Properties.Settings.Default.Properties)
{
if (Double.TryParse(GenerateValue()), out result))
{
Properties.Settings.Default[ currentProperty.Name ] = result.ToString();
Properties.Settings.Default.Save();
}
}
Выше всего то, что вы действительно хотите.