ConfigurationManager.OpenExeConfiguration方法没有';t键的返回值
本文关键字:返回值 OpenExeConfiguration 方法 ConfigurationManager | 更新日期: 2023-09-27 18:19:50
我正在使用ConfigurationManager.OpenExeConfiguration方法尝试从appSettings dynamicaly获取密钥。我已经更新了文件dynamicaly,所以在更新后,我试图打开它,并获得新密钥的新值。
示例:一开始我的文件看起来像:
<appSettings>
<add key = "CZH" value = "Chezch Republic"/>
<add key = "DEN" value = "Denmark"/>
</appSettings>
在某个时刻,我将在这一部分添加一个新的密钥/值对,它看起来像:
<appSettings>
<add key = "CZH" value = "Chezch Republic"/>
<add key = "DEN" value = "Denmark"/>
<add key = "ITA" value = "Italy"/>
</appSettings>
所以,在添加之后,我想获得新的价值和它的关键,但我看不到实现这一点的方法。我所能得到的只是AllKeys,其中一切都很好,但我也希望添加新密钥的值。
我在Notepad++中打开了我的文件,我可以看到它已经正确更新,但我不知道如何获得新密钥的值。
编辑:好的,我会再解释一遍,这次我真的希望有人能理解我。
使用ConfigurationManager.OpenExeConfiguration(path_to_the_file)我正在加载应用程序的配置文件。该方法的返回类型为:配置它的一个属性是AllKeys,当我调用它时,它会返回我所需要的-所有更新的密钥,但我不知道如何获取这些密钥的值。我想知道ConfigurationManager.OpenExeConfiguration(path_to_the_file)方法是否返回配置对象的方法或属性。
这就是我的全部要求。
在向app.config 添加新值后尝试此操作
ConfigurationManager.RefreshSection(“appSettings”);
有关更多详细信息,请参阅文章:http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.refreshsection.aspx
AppSettingsSection appSettings = (AppSettingsSection)config.GetSection("appSettings");
string ITAValue = appSettings.Settings[“ITA”].Value;
试试这个:
Private Sub readsettings()
Dim mySettings As NameValueCollection = ConfigurationManager.GetSection("ConnectionStrings")
Dim i As Integer = 0
While i < mySettings.Count
Console.WriteLine("#{0} Key: {1} Value: {2}", i, mySettings.GetKey(i), mySettings(i))
System.Math.Max(System.Threading.Interlocked.Increment(i), i - 1)
End While
End Sub
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None).FilePath
查看您是否正在加载当前文件。否则的话。使用自定义文件位置。
ConfigurationManager.OpenExeConfiguration("myfilepath.exe");
如果您正在动态添加、删除或更改应用程序设置。然后我建议您使用appSettings Sections上的File属性。