0

実行時にapp.configファイルを更新しようとしています。エラーが発生します

System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。59行目。

私がやろうとしているのは、実行時にURLを変更することです。これは、URLに使用されるテキストボックスを含むポップアップフォームを使用して、構成ファイルを更新するために使用されます。

public void changeSettings()
    {
        Configuration config =
            ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            KeyValueConfigurationCollection settings = config.AppSettings.Settings;

        try
        {
            Console.WriteLine("nothing " + ConfigurationManager.AppSettings["client_postCodeRef_Service"]);
            settings["client_postCodeRef_Service"].Value = textBox1.Text; <- line 59
            config.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection("applicationSettings");
            Console.WriteLine("nothing 2 " + ConfigurationManager.AppSettings["client_postCodeRef_Service"]);
        }
        catch (ConfigurationErrorsException e)
        {
            MessageBox.Show("[Exception error: {0}]",
                e.ToString());
        }




    }

これが設定ファイルです

 <applicationSettings >
    <Client.Properties.Settings>
      <setting name="client_postCodeRef_Service" serializeAs="String">
        <value>http://127.0.0.1/directory/directory/webService.asmx</value>
      </setting>
      </Client.Properties.Settings>
    </applicationSettings>
4

1 に答える 1

1

使用してapplicationSettingsいませんappSettings
2つは、構成ファイルの異なるセクションです。

でエントリを使用するには、次のapplicationSettings構文を使用します。

string result = Client.Properties.Settings.Default.client_postCodeRef_Service;

また、プログラム内からapplicationSettingエントリの値を簡単に変更することはできないことにも注意してください。
applicationSettingsとAppSettingsの長所と短所に関する詳細な説明は、ここにあります。

于 2012-06-07T08:52:31.053 に答える