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

C# 如何在程序执行之间保留项目设置?,c#,.net,settings,C#,.net,Settings,在我的应用程序中,我允许用户选择包含一些数据的文件,数据被读取,当用户关闭并再次打开应用程序时,数据应该是可用的。我认为可以将值存储在设置中,因此我编写了一个类: public static class SettingsManager { public static string ComplexValidationsString { get { return (string)Properties.Settings.Default["

在我的应用程序中,我允许用户选择包含一些数据的文件,数据被读取,当用户关闭并再次打开应用程序时,数据应该是可用的。我认为可以将值存储在设置中,因此我编写了一个类:

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

        //some more
    }
设置值并关闭应用程序后,该值丢失。有没有类似的方法来保存该值?我曾经见过一些代码来替换在配置文件中写入的数据,所以我想有一种方法。

这很容易

Properties.Settings.Default.Save();
你可以把它放在你的静态void Main方法中

Properties.Settings.Default.Save();

您可以将其放在静态void Main方法中

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

这意味着,如果您更新版本号或从其他位置运行它,您将获得一组新的空白设置。我添加了一个属性,该属性允许我在首次运行新版本时进行检测,并尝试从以前的设置升级。您可以使用检索旧设置

 Settings.Default.GetPreviousVersion("MyPropertyName");

如果您从早期版本开始添加了新属性,您确实需要记住捕获设置Property NotFoundException。

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

这意味着,如果您更新版本号或从其他位置运行它,您将获得一组新的空白设置。我添加了一个属性,该属性允许我在首次运行新版本时进行检测,并尝试从以前的设置升级。您可以使用检索旧设置

 Settings.Default.GetPreviousVersion("MyPropertyName");
如果从早期版本开始添加了新属性,则需要记住捕获SettingsPropertyNotFoundException