0

3 セットの文字列コレクション (ユーザーのブックマークやその他のもの) を保存する必要があるアプリケーションがあります。「設定ファイル」を C# プロジェクトに追加し、特殊文字列コレクション タイプの 3 つの設定変数を作成しました。各コレクションに文字列を追加し、Settings.Default の .Save() メソッドを呼び出すことができるため、すべて問題ないようです。生成された「user.config」ファイル内に、きれいな文字列コレクションが表示されます。

ただし、これらの値はいつロードされますか? Settings の .Load() メソッドはありません。Settings.-setting variable-name にアクセスしようとすると、null 例外エラーがスローされるため、明らかにこれらの値は起動時に単独でロードされません。

私は何が欠けていますか?

4

1 に答える 1

1

おそらく、アプリケーションと設定ファイルのバージョンが異なることに問題があるのでしょうか? ApplicationSettingsBase.Upgrade以前の設定を新しいバージョンに移行するには、電話してみてください。

Upgrade実際に設定を更新した場合にのみ、1 回だけ呼び出す必要があることに注意してください。デフォルト値 true で呼び出される設定プロパティを作成し、NeedsUpgradeアプリケーションのロード時に次を実行します。

if (Settings.Default.NeedsUpgrade)
{
    Settings.Default.Upgrade();
    Settings.Default.NeedsUpgrade = false;
    Settings.Default.Save();
}

これによりUpgrade、新しいバージョンの設定ファイルが作成されたときにのみ呼び出されます。

于 2012-12-08T01:11:01.790 に答える