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)方法是否返回配置对象的方法或属性。

这就是我的全部要求。

ConfigurationManager.OpenExeConfiguration方法没有';t键的返回值

在向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属性。