Я обнаружил, что вызов ApplicationSettingsBase.Reset
приведет к сбросу настроек к значениям по умолчанию, но также к их сохранению.
Я хотел сбросить их до значений по умолчанию, но не сохранять их (чтобы пользователю не нравились настройки по умолчанию, пока они не были сохранены, они могли вернуть их обратно).
Я написал метод расширения, подходящий для моих целей:
using System;
using System.Configuration;
namespace YourApplication.Extensions
{
public static class ExtensionsApplicationSettingsBase
{
public static void LoadDefaults(this ApplicationSettingsBase that)
{
foreach (SettingsProperty settingsProperty in that.Properties)
{
that[settingsProperty.Name] =
Convert.ChangeType(settingsProperty.DefaultValue,
settingsProperty.PropertyType);
}
}
}
}