動機
長らくWindowsアプリケーションを書いていなかったため、大昔のiniファイルを書いたりパースさせたりというのばかりに慣れてしまっており、最近のUWP(Universal Windows Platform)における設定ファイルの読み書きをどうすればよいのか分からなかったのでメモしておきます。ちょっと調べれば分かる話ですけど。
さすがにもうiniファイルではない
そりゃそうですね。20数年前の知識で止まりすぎです。UWPではWindows.Storage.ApplicationDataContainerクラスもしくはWindows.Storage.ApplicationDataCompositeValueクラス(構造体のように複数の値で1つの属性を表す場合)で表現すればよいみたいです。
設定種類 | クラス名 |
---|---|
デバイス特有の設定(ローミングさせないやつ) | Windows.Storage.ApplicationData.Current.LocalSettings |
デバイス間をまたがって設定するもの | Windows.Storage.ApplicationData.Current.RoamingSettings |
設定の書き込み
Windows.Storage.ApplicationDataContainerクラスがキーバリューストアになっているため、単純に次のように書けばキーe-mailに対応する設定は"hogehoge@xyz.com"ですよ、という内容の設定ファイルとして残してくれます。設定用ページでセーブボタンを押したときに発動させればいいです。
ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
localSettings.Values["e-mail"] = "hogehoge@xyz.com";
#設定の読み込み
理屈は同じで、ApplicationDataContainerクラスを取ってきて、それをキーバリューストアで読み込めば良いだけです。ページロード時に読み込んで更新しておけばOKです。
ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
var email = localSettings.Values["e-mail"] as String;
というような感じ。