为什么这个通用列表没有保存在应用程序设置中?
Why is this generic list not being saved in application settings?
我正在我的应用程序设置文件 (Settings.settings) 中保存和加载各种变量。 Saving/Loading 变量,例如 strings
、Uris
和 DataTables
工作正常。
当尝试 Save/Load 自定义对象 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;
}
}
我的迭代过滤器class:
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;
}
}
TFS_Extraction.IterationFilter
必须是可序列化的。 class 需要有一个 public 默认构造函数。
我正在我的应用程序设置文件 (Settings.settings) 中保存和加载各种变量。 Saving/Loading 变量,例如 strings
、Uris
和 DataTables
工作正常。
当尝试 Save/Load 自定义对象 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;
}
}
我的迭代过滤器class:
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;
}
}
TFS_Extraction.IterationFilter
必须是可序列化的。 class 需要有一个 public 默认构造函数。