WPF:在运行时更改配置文件的用户设置?
问题描述:
我想改变我的WPF应用程序中的一些配置文件的用户设置值,但它只能部分工作。值被正确改变,程序运行正常。我甚至可以重新启动程序,并且这个值仍然是我改变它的值。问题是,当我打开.exe.config文件的值仍然是旧值。即时通讯使用此代码更改值:WPF:在运行时更改配置文件的用户设置?
Properties.Settings.Default.ProjectNumber = varTestExample;
Properties.Settings.Default.Save();
哪里能节省代码保存更改以及如何/哪里的程序读取i的值已经运行此代码后? 如果我运行一个干净版本的程序,ProjectNumber值是从.exe.config文件中正确取得的,如果我更改了配置文件中的值,那么当我运行程序时也会发生更改。但只要我运行上面的代码,程序不会读取配置文件中的值。为什么?
答
设置按每个用户保存。您应该查看C:\Documents and Settings\[UserName]\...
(WinXP)或C:\Users\...
(Vista/7)中的Application Data
文件夹。
不保存任何设置,程序将使用默认配置,即您的*.exe.config
文件。但是,只要保存更改,就会创建一个用户特定的设置文件,并在下次启动时加载该文件。我认为,这应该解释你的行为。
答
用户保存的设置存储在用户的AppData目录下。通常是C:\用户\\应用程序数据\本地\\
存储在.exe.config文件与该值默认值
希望(你在VS的设置编辑器中设置),它可以帮助
答
Properties.Settings只涉及基于用户的设置,应用程序设置是一个完全独立的一系列设置,如果您使用ClickOnce Installs,将会覆盖这些设置 - 因此请小心在此存储的配置。
private void updateDataInConfigFile()
{
Xml xmlConfigFile = new Xml(ProjectName.sSettingFileName);
xmlConfigFile.SetValue("My Setting Section", "MyFirstSetting", MySettingValue);
}
private void GetDataFromConfigFile()
{
Xml xmlConfigFile = new Xml(MyProject.sSettingFileName);
txtAccessDriverId.Text = xmlConfigFile.GetValue("Mys Setting Section", "MyFirstSetting").ToString();
}
这是现货。 – ChrisF 2010-03-16 09:49:33