2012-12-17 43 views
2
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 

config.AppSettings.Settings["dbHost"].Value = txtHost.Text.ToString(); 
config.AppSettings.Settings["dbName"].Value = txtName.Text.ToString(); 
config.AppSettings.Settings["dbUser"].Value = txtUser.Text.ToString(); 
config.AppSettings.Settings["dbPass"].Value = txtPass.Text.ToString(); 
config.Save(ConfigurationSaveMode.Modified); 
ConfigurationManager.RefreshSection("appSettings"); 

当我重新打开应用程序时,我在运行 - 得到一个空白文本的app.config不保存我的配置

+0

应用程序或用户级别的设置是?如果是应用程序,那么这是我相信的预期行为,因为这些行为在运行时无法更改。 – KingCronus

回答

3

应用程序不应该改变设置/ bin目录中的app.config时间,只在安装时间。在运行期间,应用程序应该写入%APPDATA%文件夹下的应用程序文件夹。如果您有UAC活动,Windows将强制执行此操作。

此外,您使用的API并不是要修改文件。

如果要访问%APPDATA%设置(每个用户),请改用此PerUserRoaming或PerUserRoamingAndLocal。

http://msdn.microsoft.com/en-us/library/system.configuration.configurationuserlevel.aspx

+0

我可以保存设置? INI?如果我使用ini文件,这是不安全的。即使它被加密 –

+0

1.您可以将设置保存在配置文件中; user.config文件,而不是app.config文件。 2.“安全”是什么意思?配置文件通常也不加密。 –

+0

@ArdaTünuz - 通过该逻辑,配置文件是不安全的,即使它的加密 –