アプリケーション構成ファイルのセクションの中身を別ファイルに移す

アプリケーション構成ファイルのセクションには、configSource という属性があります。configSource を使えば、セクションの中身を別ファイルに移すことが可能です。

configSource には、読込先の構成ファイルのパスを指定します。指定できるのは、構成ファイルと同じディレクトリか、サブディレクトリにある構成ファイルです。

サンプルは次の通り。

ビフォー

app.config
 <?xml version="1.0" encoding="utf-8"?>
 <connectionStrings>
   <add name="Default"
        connectionString="Database=tempdb;Server=(local);Integrated Security=SSPI;"
        providerName="System.Data.SqlClient" />
 </connectionStrings>

アフター

app.config
 <?xml version="1.0" encoding="utf-8"?>
 <configuration>
   <connectionStrings configSource="connection.config" />
 </configuration>
connection.config
<?xml version="1.0" encoding="utf-8"?>
<connectionStrings>
  <add name="Sample"
       connectionString="Database=master;Server=(local)\;Integrated Security=SSPI"
       providerName="System.Data.SqlClient" />
</connectionStrings>

なんということでしょう!

……このサンプルだと、イマイチありがたみが伝わりませんね。でも、これで構成ファイルの肥大化も怖くないw