各ユーザー設定 (または任意の設定)のオブジェクトは、クラスのコレクションSettingsProperty
を通じて取得できます。次に、プロパティを調べて、デフォルト値 (特定のユーザーに設定される前の値) を取得できます。たとえば、通常、次のようにプロパティにアクセスする場合:Properties
Settings
DefaultValue
var value = Properties.Settings.Default.MySetting;
次に、次のようにデフォルト値を取得できます。
var defaultValue = Properties.Settings.Default.Properties["MySetting"].DefaultValue;
デフォルト値は、Visual Studio の設定エディターで設定した値です。
アップデート:
デフォルト値を取得する他の方法は知りません。文字列プロパティ名を避けるために、拡張メソッドを記述して、コンパイラでチェックされた式に基づいてデフォルト値を取得できます。
public static class SettingsExtensions
{
public static T GetSettingDefaultValue<T, T2>(this T2 settings,
Expression<Func<T2, T>> expression) where T2 : ApplicationSettingsBase
{
MemberExpression memberExpr = expression.Body as MemberExpression;
return (T)settings.Properties[memberExpr.Member.Name].DefaultValue;
}
}
そして、次のようにデフォルト値を取得します。
var defaultValue = Settings.Default.GetSettingDefaultValue(s => s.MySetting);