1

appSettings からキーを動的に取得しようとしてConfigurationManager.OpenExeConfigurationメソッドを使用しています。ファイルを動的に更新したので、更新後にファイルを開いて新しいキーの新しい値を取得しようとしています。

例: 最初のファイルは次のようになります。

<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++ でファイルを開いていますが、適切に更新されていることがわかりますが、新しいキーの値を取得する方法がわかりません。

編集:OK、もう一度説明しようと思いますが、今回は誰かが私を理解してくれることを本当に願っています.

ConfigurationManager.OpenExeConfiguration(path_to_the_file)を使用 して、アプリケーションの構成ファイルをロードしています。メソッドの戻り値の型は次のとおりです。構成 そのプロパティの 1 つはAllKeysで、それを呼び出すと、必要なものを正確に返します - すべての更新されたキーですが、それらのキーの値を取得する方法がわかり ません。ConfigurationManager.OpenExeConfiguration(path_to_the_file)メソッドが返す構成オブジェクトのメソッドまたはプロパティがあるかどうか疑問に思っています。

これが私が求めているすべてです。

4

3 に答える 3

1

これを試して:

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
于 2015-09-07T11:15:38.150 に答える
0
 ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None).FilePath

正しいファイルをロードしているかどうかを確認してください。そうでなければ賢明です。カスタム ファイルの場所を使用します。

 ConfigurationManager.OpenExeConfiguration("myfilepath.exe");

その場でアプリ設定を追加または削除または変更する場合。次に、 appSettingsセクションでFile属性を使用することをお勧めします。

于 2013-06-24T13:15:00.690 に答える