0

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()ConnectionStringLINQ-to-XML

XDocument configFile = XDocument.Load(path);

//make changes to configFile

XDocument.Save(path);

EXE configurationコードをコードの下に移動する必要がありましたXDocumentConnectionStringコードにヒットする前に、メモリ内で変更されていることがわかりXDocumentます。なぜこれが起こっているのかわかりませんが、XMLをメモリにロードし、それを保存し直すと、基本的に、自分で行ったすべての変更を上書きしているためconfig.Save()ですか?その場合、コードを並べ替えることなく変更を加える方法はありますか?

4

0 に答える 0