相互に通信するアプリケーションをいくつか実行していますが、これらのアプリケーションには独自のユーザーインターフェイスがありません。システムのユーザーインターフェイスとして機能するシステムコンソールアプリケーション(つまり、すべてが相互に通信するアプリケーションのセット)があります。
システムコンソールを使用して、GUI以外の各アプリの構成を読み取って変更できるようにしたいと思います。
各アプリには、VisualStudio設定GUIを使用して作成されたapp.configファイルがあります。設定はすべてアプリケーションスコープ内にあり、その結果、app.configファイルは次のようになります。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="ExternalConfigReceiver.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<ExternalConfigReceiver.Properties.Settings>
<setting name="Conf1" serializeAs="String">
<value>3</value>
</setting>
<setting name="Conf2" serializeAs="String">
<value>4</value>
</setting>
</ExternalConfigReceiver.Properties.Settings>
</applicationSettings>
次のコードを使用して構成設定を読み取ってみました。
System.Configuration.ExeConfigurationFileMap fileMap = new System.Configuration.ExeConfigurationFileMap();
fileMap.ExeConfigFilename = "PATH_TO_THE_FOLDER\\app.config";
System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(fileMap, System.Configuration.ConfigurationUserLevel.None);
someVariable = config.AppSettings.Settings["Conf1"];
someVariable2 = config.AppSettings.Settings["Conf2"];
ただし、config.AppSettingsオブジェクトを詳しく調べると、設定が含まれていないことがわかります。
私は何が間違っているのですか?設定ファイルを読み取るために間違った方法を使用していますか?この方法は、別の種類の構成ファイルに最適ですか?