我需要更新我的app.config中的一个自定义配置部分中的值。如何做到这一点有一个很好的例子吗?C# - 保存自定义配置
<mySection>
<level1>
<add data1="444"/>
</level1>
</mySection>
我想以编程方式在444到555更新。
我需要更新我的app.config中的一个自定义配置部分中的值。如何做到这一点有一个很好的例子吗?C# - 保存自定义配置
<mySection>
<level1>
<add data1="444"/>
</level1>
</mySection>
我想以编程方式在444到555更新。
假设您的配置存储在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中工作,我有网络应用程序和它们的配置没有什么经验。
该技术将重写配置文件,但不会刷新任何内部配置文件缓存。要强制重新加载配置文件(这可能不是应用程序中的问题),可以调用以下静态方法。
ConfigurationManager.RefreshSection(section);
你可以使用linq to xml找到你想要更改的元素,你应该得到一个XElement对象,改变它如你所愿,和保存。
这会导致appdomain重新加载吗?这会在应用程序运行时引发任何问题吗?这是一个控制台应用程序,所以我认为它与web应用程序相比不会有什么大不了的。 – Arcadian 2012-08-16 19:13:49
这不会导致应用程序域被重新加载。只有配置文件。我无法评论这可能会导致您的应用程序出现什么问题,因为我不知道您的应用程序是如何编写的。 – 2012-08-16 19:15:31