使用Configuration和LINQ-to-XML保存XML后会覆盖XML吗?

时间:2012-10-18 18:27:16

标签: c# linq-to-xml configurationmanager

我正在使用XML打开LINQ-to-XML文件,但在此之前我使用OpenMappedExeConfiguration从配置文件中获取ConnectionStringsSection

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();

ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = exeConfigName;
System.Configuration.Configuration config =
ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);`

ConnectionStringsSection section = config.ConnectionStrings;

//Modify connection string...

修改ConnectionString的一部分后,我通过以下方式保存配置文件:

config.Save();

保存EXE configuration后,我再次打开文件,通过LINQ-to-XML阅读其他部分内容,但在文档上调用Save()后,似乎无法保存{{1} }}更改,但它保存了我使用ConnectionString所做的更改。

LINQ-to-XML

我必须将XDocument configFile = XDocument.Load(path); //make changes to configFile XDocument.Save(path); 代码移到EXE configuration代码下方。我可以看到它在点击XDocument代码之前更改了内存中的ConnectionString。我不确定为什么会这样,但是因为我已经将XML加载到内存中,当我将其保存回来时,我基本上覆盖了我对XDocument所做的所有更改?如果是这样,有没有办法可以进行更改而无需重新排序代码?

0 个答案:

没有答案