1

我需要在我的 app.config 中的一个自定义配置部分中更新一个值。有没有一个很好的例子来说明如何做到这一点?

<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.config,因为我对 Web 应用程序及其配置几乎没有经验。

此技术将重写配置文件,但不会刷新任何内部配置文件缓存。要强制重新加载配置文件(这在您的应用程序中可能不是问题),您可以调用以下静态方法。

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

您可以使用linq to xml来查找要更改的元素,您应该获取一个XElement对象,根据需要进行更改,然后保存。

于 2012-08-16T17:22:44.580 回答