我需要更新我的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