appSettings 要素を介して参照される構成ファイルに追加のキーと値のペアを保存できます。これにより、メインの構成ファイルが整理され、追加の構成が独自の依存構成ファイルに保存されます。
これについては、記事MSDN - appSettings Element (General Settings Schema)で説明されています。
これは事実上、2 番目と 3 番目のアイテムの組み合わせです。
メンテナンス上の理由から、コード内の静的辞書には入れません。構成ファイルは、このデータのより明白な場所でもあります。組み込みの .Net 機能を活用することで、たとえば誰かが Xml ファイルを無視するリスクを冒すこともありません。
より具体的な例は次のようになります (ファイル パスはメイン アプリケーションからの相対パスであることに注意してください)。
app.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings file="mykeyvaluepairs.config"/>
</configuration>
mykeyvaluepairs.config
<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
<add key="imaginativelynamedkey1" value="imaginativelynamedvalue1" />
</appSettings>
元の app.config では、次のことを行っても問題ないことに注意してください。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings file="mykeyvaluepairs.config">
<add key="CanBeOverridenByItemInChildConfigFileWithSameName" value="UnicornsGoHere" />
</appSettings>
</configuration>
つまり、mykeyvaluepairs.config ファイルで appsettings を再定義しない限り、両方が並んで存在しますが、mykeyvaluepairs.config 内の同じ名前の項目は、メイン構成内の値をオーバーライドします。