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