【Xamarin.Forms】App.Current.Propertiesでハマった話

おはようございます。こんにちは。こんばんは。
札幌事業所のYです。

本社の方々はすっかり沖縄気分でいらっしゃるとのことですが、
沖縄気分の方々が社員旅行でのゴルフへ向けて練習している時にハマった内容をちょっと上げようと思います。
(決して毒を吐いているわけではございません。吐く前に飲み込みましたので。)

弊社では、Android、iOSアプリ開発にはXamarinを使用しております。
アプリ内で設定情報を保持したいと思ったときに使えるのが、皆さんご存知のタイトルにもある
IDictionary<string, object> App.Current.Properties なんですね。

ディクショナリのバリューの型はobjectって書いてるんですよね。
おお。結構便利じゃないか。と思って先日これにList<string>をぶっこんでやりました。
すると、なんということでしょう。動かないんですね。ええ。
例外も何も吐かないんですけど、確かに設定の保存ができていないんです。

あれー、なんかロジックミスったかなぁ。こわいなぁ。こわいなぁー。
と思って確かめてみても何も悪いところは見当たらない。

かれこれこの問題にぶち当たって数時間。
初心に立ち返ってXamarinの書籍を読んでみるとこんなことが書いてありました。

propertiesディクショナリで使用するデータ型は基本データ型に制限しなければならない

すみません。調子に乗ってました。objectだからってなんでも入れていいってわけじゃないんですよね。
しっかり本読んでおけよ。そだねー。っていう。

同様の問題にぶつかった方の一助になれば幸いです。
(上記は会社の公式見解でなく、あくまで個人の見解です。)

これがなければゴルフの打ちっぱなし位はいけたんでしょうけど、
沖縄ゴルフはぶっつけで臨むことになりました。