我的App.config文件的configSections中有一个自定义部分,如何在代码中更改此部分变量之一的值?
我要更改的部分是“ serverConfiguration”,我想更改“ serverUrl”的值:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="serverConfiguration" type="someType" />
</configSections>
<serverConfiguration serverUrl="http://development/server/" />
</configuration>
我在上一个问题App.Config change value的下面找到了这段代码。 它看起来很接近我的需要,但是我不确定如何自己更改它以将其用于自定义部分而不是AppSettings。下面的代码可以满足我的工作要求吗?如何更改下面的代码,以允许我将此新字符串作为serverUrl“ http://staging/server/”传递?谢谢!
class Program
{
static void Main(string[] args)
{
UpdateSetting("lang", "Russian");
}
private static void UpdateSetting(string key, string value)
{
Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
configuration.AppSettings.Settings[key].Value = value;
configuration.Save();
ConfigurationManager.RefreshSection("appSettings");
}
}
答案 0 :(得分:0)
您可以选择将配置加载到XML中,编辑节点值并将其保存回去。尝试一下
var xmlDoc = new XmlDocument();
xmlDoc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
xmlDoc.SelectSingleNode("//serverConfiguration").Attributes["serverUrl"].Value = "http://staging/server/";
xmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
也许,保存文件后刷新Config节是个好主意。