在 VB.net 中,如何保存对 app.config 的更改
In VB.net, how do I save changes to app.config
我的 app.config 文件中有几个 appSettings,默认值:
<appSettings>
<add key="Foo" value="one"/>
<add key="Bar" value="two"/>
</appSettings>
我能够读取并将值放入 TextBox 和 ComboBox
我有这个代码来保存对这两个所做的更改,但是我所做的更改没有保存到 app.config 文件本身,所以当我关闭程序并再次打开它时,值会消失回到默认值。
Private Sub ButtonSaveSettings_Click(sender As Object, e As EventArgs) Handles ButtonSaveSettings.Click
Dim settings = System.Configuration.ConfigurationManager.AppSettings
settings.Set("Foo", TextBoxFoo.Text)
settings.Set("Bar", ComboBoxBar.SelectedItem.ToString)
End Sub
我需要做什么才能将更新后的值保存到 app.config 文件中?
(编辑:重复的答案不适用于 VB,也没有解决这个问题。)
我不需要通过将我的 app.config 文件更改为这个文件来弄乱 ConfirgurationManager(使用解决方案资源管理器 -> 我的项目 -> 设置)
<userSettings>
<MyProject.My.MySettings>
<setting name="Foo" serializeAs="String">
<value>one</value>
</setting>
<setting name="Bar" serializeAs="String">
<value>two</value>
</setting>
</MyProject.My.MySettings>
</userSettings>
我能够使用此代码保存我的设置的更新值
Private Sub ButtonSaveSettings_Click(sender As Object, e As EventArgs) Handles ButtonSaveSettings.Click
My.Settings.Foo = TextBoxFoo.Text
My.Settings.Bar = ComboBoxBar.SelectedItem.ToString
End Sub
另一种方法是使用
My.Settings.Save()
在您的 ButtonSaveSettings.Click 活动中。否则,设置将无法保留
以上选项用于设置,不适用于应用程序设置键。
我有同样的问题,我用下面的代码解决了它
Dim config As Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
config.AppSettings.Settings("yourKeyName").Value = YourNewValue
config.Save(ConfigurationSaveMode.Modified)
ConfigurationManager.RefreshSection("appSettings")
保存更改非常重要!!!
刷新是可选的(RefreshSection),如果你需要立即使用更新的值
我的 app.config 文件中有几个 appSettings,默认值:
<appSettings>
<add key="Foo" value="one"/>
<add key="Bar" value="two"/>
</appSettings>
我能够读取并将值放入 TextBox 和 ComboBox
我有这个代码来保存对这两个所做的更改,但是我所做的更改没有保存到 app.config 文件本身,所以当我关闭程序并再次打开它时,值会消失回到默认值。
Private Sub ButtonSaveSettings_Click(sender As Object, e As EventArgs) Handles ButtonSaveSettings.Click
Dim settings = System.Configuration.ConfigurationManager.AppSettings
settings.Set("Foo", TextBoxFoo.Text)
settings.Set("Bar", ComboBoxBar.SelectedItem.ToString)
End Sub
我需要做什么才能将更新后的值保存到 app.config 文件中?
(编辑:重复的答案不适用于 VB,也没有解决这个问题。)
我不需要通过将我的 app.config 文件更改为这个文件来弄乱 ConfirgurationManager(使用解决方案资源管理器 -> 我的项目 -> 设置)
<userSettings>
<MyProject.My.MySettings>
<setting name="Foo" serializeAs="String">
<value>one</value>
</setting>
<setting name="Bar" serializeAs="String">
<value>two</value>
</setting>
</MyProject.My.MySettings>
</userSettings>
我能够使用此代码保存我的设置的更新值
Private Sub ButtonSaveSettings_Click(sender As Object, e As EventArgs) Handles ButtonSaveSettings.Click
My.Settings.Foo = TextBoxFoo.Text
My.Settings.Bar = ComboBoxBar.SelectedItem.ToString
End Sub
另一种方法是使用
My.Settings.Save()
在您的 ButtonSaveSettings.Click 活动中。否则,设置将无法保留
以上选项用于设置,不适用于应用程序设置键。 我有同样的问题,我用下面的代码解决了它
Dim config As Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
config.AppSettings.Settings("yourKeyName").Value = YourNewValue
config.Save(ConfigurationSaveMode.Modified)
ConfigurationManager.RefreshSection("appSettings")
保存更改非常重要!!! 刷新是可选的(RefreshSection),如果你需要立即使用更新的值