为什么这个通用列表没有保存在应用程序设置中?

Why is this generic list not being saved in application settings?

我正在我的应用程序设置文件 (Settings.settings) 中保存和加载各种变量。 Saving/Loading 变量,例如 stringsUrisDataTables 工作正常

当尝试 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 默认构造函数。