WPFのProperties.Settings.Defaultで保存されない現象について
- 題名: WPFのProperties.Settings.Defaultで保存されない現象について
- 著者: takos
- 日時: 2011/06/26 2:21:53
- ID: 28701
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: WPFのProperties.Settings.Defaultで保存されない現象について
- 著者: 管理人
- URL: http://dobon.net/
- 日時: 2011/06/27 4:41:23
- ID: 28703
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: WPFのProperties.Settings.Defaultで保存されない現象について
- 著者: takos
- 日時: 2011/06/27 14:50:42
- ID: 28705
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
いつも参考にさせてもらっています。 WPFでアプリケーションを作っているのですが、アプリケーションの設定が正しく保存されなくて困っています。行いたいことは、アプリケーションの初回起動時に、設定の初期化処理を行うことです。 Visual Studio 2010 でソリューションエクスプローラーの“プロジェクト名”を右クリック、「プロパティ」の「設定」タブで以下の項目を追加しています。 型 名前 スコープ 値 bool IsSettingEnable ユーザー False System.Collections.Hashtable HashT ユーザー そして、以下のようなプログラムを実行しています。 public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); if (!Properties.Settings.Default.IsSettingEnable) { Properties.Settings.Default.HashT = new System.Collections.Hashtable(); Properties.Settings.Default.HashT.Add("foo","hoge"); Properties.Settings.Default.IsSettingEnable = true; Properties.Settings.Default.Save(); } if (Properties.Settings.Default.IsSettingEnable && Properties.Settings.Default.HashT != null) MessageBox.Show("HashTの中身はnullではありません"); } } 簡単に説明すると、アプリケーション初回起動時にHashTを初期化してIsSettingEnableをtrueにして設定有効フラグを立てます。そして、次回に起動するときにHashTの中身がnullでなければ確認のメッセージを表示します。 このプログラムを実行すると、2回目以降の起動時に、MessageBoxが表示されません。つまり、初期化したはずのHashTがnullになってしまっているのです。 bool型やstring型などは正常に保存されるのですが、HashTableやXDocumentなどは保存されずにnullになってしまいます。 いろいろ調べたつもりなのですが、良いページを見つけられませんでした。この現象について、ぜひご意見をいただけたらと思います。 どうかよろしくお願いします。