在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,它继续类定义并包含这些模糊的类型?
答案 0 :(得分:1)
Settings.Designer.cs
会自动生成。所以是的,您可以使用此类是部分的这一事实,并将您自己的设置定义为具有相同类定义的另一个文件。
这样设置就不会被覆盖。