【VisualStudioC#】App.config を分割【xml】

C#で開発していて、簡単に設定ファイルを作成したいと思った。
けど、App.config が長くなるのはなぁって思ったので外部ファイルにした。

① 外部ファイルを作成する。とりあえず、 setting.xml を作成。

setting.xml の内容は以下の通りとする。

<?xml version="1.0" encoding="utf-8" ?>
<setting>
  <add key="TEST1" value="1"/>
  <add key="TEST2" value="2"/>
</setting>

② 外部ファイルを App.config で設定する。

setting.xml を config ファイルと同等と使用するためには、
App.config にも少し設定が必要だ。

App.config ファイルに以下の設定を書きこむ。
書きこむ箇所は2箇所ある。
まずひとつ目は、 configSections の下。そこに name には xml で設定した名前を記入する。
今回は「setting」とする。

<configuration>
  <configSections>
     // 略
    <!-- その他設定ファイル使用宣言-->
    <section name="setting"
     type="System.Configuration.NameValueFileSectionHandler"
     restartOnExternalChanges="false"/>
  </configSections>
</configuration>

ふたつ目の設定は /appSetting の下に外部ファイルを読み込むと記述する。
なお、setting.xml は、 App.config と同じ場所にいなければならないので、
setting.xml のプロパティ -> 詳細 -> 出力ディレクトリにコピー の設定を「常にコピーする」
に変更する必要がある。

  </appSettings>
  <!-- setting ファイル-->
  <setting configSource="setting.xml" />

これでファイル側の設定は完了する。次、読み込み側。
③ 設定ファイルを読み込む

using System.Collections.Specialized;

private void readXML()
{
    // xml ファイル名を渡すと内容が取得できる。
    var setting= (NameValueCollection)ConfigurationManager.GetSection("setting");
    // key をわたすと、 value が string で戻ってくる。
    string strTest1= setting["TEST1"].Trim();
}

以上が一連の流れとなる。
今後使うことがあるかもしれないので、一応メモとして残しておく。