私はアプリケーション設定ファイル(Settings.settings)にさまざまな変数を保存してロードしています。 strings
,Uris
、DataTables
などの変数の保存/読み込みは、が正しく動作します。です。この汎用リストがアプリケーション設定に保存されないのはなぜですか?
カスタムオブジェクトList<IterationFilter>
を保存/ロードしようとすると、アプリケーションを閉じて再度開くと、リストが失われます。 List<IterationFilters>
はIterationFilter
がリストに追加されて保存されていても、アプリケーションがリロードされるとnull
になります。
保存(正しく動作)文字列:ジェネリックリストを保存
Properties.Settings.Default.ConnectionString = connectionString;
Properties.Settings.Default.Save();
:
Properties.Settings.Default.FilterList.Add(newFilter);
Properties.Settings.Default.Save();
私は私のリストの設定を作成するには、this answerを追いました。マイ.settingsファイル次のようになります。
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public System.Collections.Generic.List<TFS_Extraction.IterationFilter> FilterList {
get {
return ((System.Collections.Generic.List<TFS_Extraction.IterationFilter>)(this["FilterList"]));
}
set {
this["FilterList"] = value;
}
}
マイIterationFilterクラス:
namespace TFS_Extraction
{
[Serializable]
public class IterationFilter
{
public string Operator { get; set; }
public string Value { get; set; }
public IterationFilter(string _operator, string _value)
{
Operator = _operator;
Value = _value;
}
}
@Crowcoder自分の設定がすべて「ユーザー」としてスコープされていることを明確にすべきでした。 –
IterationFilterクラスは何らかの形でシリアライズ可能ですか?たとえば、それはSettingsSerializeAs属性でマークされていますか? – Ralf