如何在程序执行之间保留项目设置?

时间:2009-02-25 09:07:38

标签: c# .net settings

在我的应用程序中,我允许用户选择包含某些数据的文件,读取数据,并在用户关闭时再次打开应用程序。我认为可以将值存储在Settings中,所以我写了一个类:

public static class SettingsManager
    {
        public static string ComplexValidationsString
        {
            get { return (string)Properties.Settings.Default["ComplexValidations"]; }
            set { Properties.Settings.Default["ComplexValidations"] = value; }
        }

        //some more
    }

设置值并关闭应用程序后,该值丢失。有没有类似的方法来保持价值?我曾经看过一些代码来替换配置文件中写的数据,所以我想有办法。

2 个答案:

答案 0 :(得分:8)

就像

一样简单
Properties.Settings.Default.Save();

您可以将其添加到static void Main()方法

答案 1 :(得分:3)

除了ybo的回答之外,您应该知道.NET将设置文件保存在与您启动应用程序的位置和版本号相关的文件夹中。

这意味着如果您更新版本号(或从其他位置运行),您将获得一组新的空白设置。我添加了一个属性,让我可以检测我们第一次运行新版本的时间,并尝试从之前的设置升级。您可以使用。

检索旧设置
 Settings.Default.GetPreviousVersion("MyPropertyName");

如果您在早期版本中添加了新属性,则需要记住捕获SettingsPropertyNotFoundException