設定の保存と復帰
最終更新:
atachi
ApplicationSettingsBaseクラス を使用してアプリケーションで使用するデータを格納していくと簡単。
- 高水準の読み込み操作および保存操作
- ユーザー スコープの設定のサポート
- ユーザー設定から定義済み既定値への復帰
- 以前のバージョンのアプリケーションで使用した設定のアップグレード
- 設定の変更前または保存前における検証
アプリケーションスコープとユーザースコープ
アプリケーションスコープはアプリケーションの動作に関する情報を保存するスコープで、ランタイムでは読み取り専用となります。
そのため、アプリケーション実行前に設定を行っておく必要があります。
ユーザースコープはアプリケーションを実行しているユーザー毎に保存可能なデータのスコープです。ユーザースコープはアプリケーション内からの読み書きが可能です。
WindowsVista以降の環境では、実行ファイルの実行ユーザー権限の問題からアプリケーションが自由にファイルアクセスすることはできません。
ユーザースコープも、AユーザーとBユーザーはそれぞれ異なる設定ファイルが生成され各ユーザーの設定ファイルを読み書きすることはできません。
保存と復帰
ConfigurationManagerを使用するには参照設定で「Windows.Configuration」を読み込む必要があります。
Configuration conf = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
string savePatj = conf.FilePath;
アプリケーション設定データクラス
保存するプロパティにはApplicationScopedSetting または UserScopedSetting アトリビュートを設定する。
public class MySettings : ApplicationSettingsBase {
[UserScopedSetting()]
[DefaultSettingValue("white")]
public Color BackgroundColor {
get {
return (Color)(this["BackgroundColor"]);
}
set {
this["BackgroundColor"] = (Color)value;
}
}
}
設定値に与える属性
UserScopedSettingはユーザースコープとして保存するデータを示すアノテーション。
DefaultSettingValueはプロパティのデフォルト値を設定するアノテーションです。