繁体   English   中英

应用程序打开时如何更改应用程序设置(设置)?

[英]How to change application settings (Settings) while app is open?

我编写了一个类,可以让我在应用程序设置中轻松读取和写入值:

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

问题是值没有真正保存,我的意思是当我退出应用程序并再次运行它时它没有改变。 我该怎么做才能确保在关闭和再次打开之间保存的值仍然存在?

设置范围必须是用户而非应用程序

你应该检查一下

Properties.Settings.Default.Properties["ComplexValidations"].IsReadOnly

这可能是真的,这就是Roland对“应用范围”的意思。 保存将无声地失败。 看一下Project | Properties | Settings,3rd column。

你确定它没有保存更改吗? bin文件夹中的[ProgramName] .exe.config文件将不会更新。 使用的acutal文件通常放在C:\\Documents and Settings\\[user]\\Local Settings\\Application Data\\[company name]\\[application].exe[hash string]\\[version]\\user.config 我知道当我尝试这种事情时,我花了一段时间才意识到这是正在更新的文件。

我刚刚测试了一个用户设置,如果你运行这个Console应用程序两次,它会被持久化:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(Settings1.Default.Setting);
        Console.ReadLine();
        Settings1.Default.Setting = "A value different from app.config's";
        Settings1.Default.Save();
    }
}

试一试吧。 这不会花一分钟。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM