atsukanrockのブログ

Microsoft系技術を中心にぼちぼち更新します

App.configやWeb.configを分割する

はじめに

本エントリでは、.NETアプリのconfigファイル

  • ASP.NETの場合:Web.config
  • デスクトップアプリの場合:App.config(実際のファイル名は.config)

を分割する方法を示す。

方法

configSource属性を利用する。

configSource属性の特徴

以下に、configSource属性の特徴を挙げる。なお、以降の説明では、configSource属性で指定したファイルを「サブファイル」と呼ぶ。

  • configファイルの全セクションに適用できる
  • configSource属性を指定したセクションでは、サブファイルの内容をセクションの内容として解釈する
  • サブファイルを編集して保存した場合も、アプリケーションドメインが再起動される
  • サブファイル編集時に、アプリケーションドメインが再起動されないようにすることもできる(その方法については、ASP.NET 構成ファイルの編集を参照)
  • サブファイルを配置できるのは、configファイルが配置されているディレクトリ、もしくはそのサブディレクトリのみ

サンプル

以下のように記述する。

Web.config
<configuration>
  <system.web>
    <httpModules configSource="httpModules.config" />
  </system.web>
</configuration>
httpModules.config
<?xml version="1.0"?>
<httpModules>
  <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>