我正在保存并在我的应用程序设置文件(Settings.settings)中加载各种变量。保存/加载strings
,Uris
和DataTables
等变量正常工作。
尝试保存/加载自定义对象List<IterationFilter>
时,关闭并重新打开应用程序时,列表将丢失。重新加载应用程序时,List<IterationFilters>
变为null
...即使已将IterationFilter
添加到列表并保存。
保存字符串(正常工作):
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;
}
}
答案 0 :(得分:3)
TFS_Extraction.IterationFilter
必须是可序列化的。该类必须具有公共默认构造函数。