我正在使用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
所做的所有更改?如果是这样,有没有办法可以进行更改而无需重新排序代码?