Подтвердить что ты не робот

С# Как перебрать свойства 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
4b9b3361

Ответ 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(); 
        } 
    } 

Выше всего то, что вы действительно хотите.