アプリケーション構成ファイルを書く <appSettings編>

細かいことは抜きに、構成ファイルに値を設定して読み取ってみましょう。
まずは、アプリケーション構成ファイルを作成します。
Visual Studio .NET を利用している場合、ソリューションエクスプローラーからプロジェクトを右クリックするか、ファイルメニューから「新しい項目の追加」を選択し、「アプリケーション構成ファイル」を選択します。このとき、名前は初期値の App.config のままにします。この名前でプロジェクトに追加することで、Visual Studio .NET は現在のプロジェクト設定に応じて自動的に出力フォルダに適切なファイル名で App.config をコピーしてくれます。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
</configuration>

という、空の構成ファイルが生成されますが、個々のアプリケーション固有の情報を書き込む場所として定義済みの要素 appSettings セクションがあり、ここではキーと値のペアを登録することができます。以前に Debug/Trace の動作をカスタマイズする方法のスイッチ*1と同様に add というタグを利用して、

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add name="greeting" value="Hello, World." />
  </appSettings>
</configuration>

のように記述します。これで System.Configuration.ConfigurationSettings.AppSettings["greeting"] を参照すると "Hello, World." が取得できます。また、appSettings は外部ファイルの取り込み機能があります。

App.config
--
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings file="Debug.config">
    <add name="greeting" value="Hello, World." />
  </appSettings>
</configuration>

Debug.config
--
<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
  <add name="greeting" value="Hello, Debugger!" />
</appSettings>

file 属性で Debug.config を指定しています。取り込まれるファイル Debug.config は、ルートレベルが Configuration ではなく appSettings になります。また、指定したファイルは存在しなくてもかまいません。(単純に取り込まれません)通常のアプリケーションの場合、マシン構成ファイル → アプリケーション構成ファイル(App.config) → 追加の構成ファイル (Debug.config) という順序に読み込まれることになります。*2
同じキーを持つ要素は上書きされていきますが、上位の構成ファイルによって add されたキーを削除する場合は remove タグと clear タグが使用できます。説明するまでもないと思いますが、

  <appSettings>
    <remove key="greeting" /> <!-- greeting を消す -->
    <clear />                 <!-- すべて消す -->
  </appSettings>

といった形で利用できます。appSettings セクションでは、キーと値という文字列のペアしか登録できないため、ちょっと不便ですね。

*1:id:ladybug:20041006#p4

*2:残念ながら、Debug.config からさらに file 属性で別のファイルを取り込むことはできません。