设置文件中的任意数据类型

时间:2011-11-23 12:18:51

标签: c# settings.settings

在Settings.settings文件中有一些默认列出的数据类型,然后当您选择"浏览"。

时,您可以从树中添加更多数据。

我实际上需要在我的设置文件中存储int[],并且已经这样做了:

[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public int[] SPLTimings
{
    get
    {
        return ((int[])(this["SPLTimings"]));
    }
    set
    {
        this["SPLTimings"] = value;
    }
}

并在第一次运行程序时:

int[] timings = Settings.SPLTimings ?? new int[] { 25, 100, 80, 50, 125, 50 };

以后会保存到磁盘。与Settings.Save()

这很有效,但它有一个小问题。如果我想使用设置GUI界面添加简单的数据类型,那么我的自定义添加内容将被删除,我必须再次添加它们。我目前只有这一个特例,所以如果它被删除,添加它并不是什么大不了的事。另一方面,我可以添加后续的基本设置,如strings / ints / etc,就像我添加int[]一样:将其直接编码到Settings.Designer文件中。

必须有更好的方法来做到这一点吗?

由于Settings类已经是部分的,它是否是创建新文件的更好的解决方案,比如CustomSettings,它继续类定义并包含这些模糊的类型?

1 个答案:

答案 0 :(得分:1)

Settings.Designer.cs会自动生成。所以是的,您可以使用此类是部分的这一事实,并将您自己的设置定义为具有相同类定义的另一个文件。 这样设置就不会被覆盖。