1

app.config のカスタム構成セクションの 1 つで値を更新する必要があります。これを行う方法の良い例はありますか?

<mySection>
    <level1>
        <add data1="444"/>
    </level1>
</mySection>

プログラムで 444 から 555 に更新したい。

4

2 に答える 2

8

構成が application.exe.config に保存されていると仮定すると、次のように動作するはずです。

void ModifyLevel1Value(int newValue)
{
    Configuration exeConfiguration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    MySection section = (MySection)exeConfiguration.GetSection("mySection");

    // Modify value, or whatever is sensible in your program
    section.LevelsCollection["data1"] = newValue;

    exeConfiguration.Save();
}

Web アプリとその構成の経験がほとんどないため、これが web.config で機能するかどうかはわかりません。

この手法は構成ファイルを書き換えますが、内部構成ファイルのキャッシュはフラッシュしません。構成ファイルを強制的に再ロードするには (アプリケーションでは問題にならない場合があります)、次の静的メソッドを呼び出すことができます。

ConfigurationManager.RefreshSection(section);
于 2012-08-16T17:20:16.017 に答える
1

linq to xmlを使用して、変更する要素を見つけることができます。XElementオブジェクトを取得し、必要に応じて変更して保存する必要があります。

于 2012-08-16T17:22:44.580 に答える