DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

「アプリケーション構成ファイル」を使用して設定を読み込む

「アプリケーション構成ファイル」とは、アプリケーション固有の設定が記述されたXML形式のファイルです。このアプリケーション構成ファイルは様々な設定を変更する時に使用されますが、アプリケーションの設定を記述しておけるという機能もあります。ここでは、「アプリケーション構成ファイル」への設定の記述と、その設定を読み込む簡単な方法を示します。なおアプリケーション構成ファイルについて詳しくは、MSDNの「アプリケーション構成ファイル」等を参考にしてください。

以下に、値が文字列の設定をアプリケーション構成ファイルに記述する方法と、その設定を読み取る方法を、順を追って説明します。

1.まずは、アプリケーション構成ファイルを作成します。

Visual Studioのソリューションエクスプローラでプロジェクトを右クリックして、ポップアップメニューを表示させます。メニューの「追加」-「新しい項目の追加」を選び、「新しい項目の追加」ダイアログを表示させます。ここで「アプリケーション構成ファイル」を選んで「追加」ボタンをクリックすると、「アプリケーション構成ファイル」が作成されます。

このアプリケーション構成ファイルは、ファイル名「App.config」(Webアプリケーションでは「web.config」)としてプロジェクトに追加されます。プロジェクトをビルドすると、アプリケーション構成ファイルはEXEファイルと同じフォルダに「(EXEファイル名).config」という名前でコピーされます(例えば、"Project1.exe"という名前のアプリケーションでは、"Project1.exe.config"という名前になります)。

はじめのアプリケーション構成ファイルの中身は次のようになっています。

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

もし「新しい項目の追加」にどうしても「アプリケーション構成ファイル」が出ない場合は、「App.config」という名前のファイルを作成して、このファイルをプロジェクトに追加し(ソリューションエクスプローラへのドラッグ&ドロップ等で追加できます)、そのファイルをVisual Studioで開いて、上記のXMLを記述すれば、OKです。

もしVisual Studioを使っていない場合は、テキストエディタでXMLを記述して(文字コードはUTF-8にしてください)、EXEファイルと同じフォルダに「(EXEファイル名).config」というファイル名で保存すればOKです。

2.次に設定を記述します。

次のように<appSettings>要素を追加し、さらにその中に<add>要素を必要なだけ追加していきます。key属性が設定名で、value属性が設定の値になります。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="Application Name" value="MyApplication" />
        <add key="Application Version" value="1.0.0.0" />
        <add key="Comment" value="Hoge Hoge" />
    </appSettings>
</configuration>

これでアプリケーション構成ファイルへの設定の記述は終了です。

3.次は、アプリケーション構成ファイルに記述された設定をアプリケーションで読み込む方法を説明します。

「アプリケーション構成ファイル」から設定を読み込むためには、.NET Framework 2.0以降では、ConfigurationManager.AppSettingsプロパティを使います。なおConfigurationManagerを使うには、参照設定に「System.Configuration.dll」を追加する必要があります。

VB.NET
コードを隠すコードを選択
'指定したキーの値を取得
'見つからないときはNothingを返す
Console.WriteLine(System.Configuration.ConfigurationManager.AppSettings("Comment"))

'すべてのキーとその値を取得
Dim key As String
For Each key In System.Configuration.ConfigurationManager.AppSettings.AllKeys
    Console.WriteLine("{0} : {1}", _
        key, System.Configuration.ConfigurationManager.AppSettings(key))
Next key
C#
コードを隠すコードを選択
//指定したキーの値を取得
//見つからないときはnullを返す
Console.WriteLine(System.Configuration.ConfigurationManager.AppSettings["Comment"]);

//すべてのキーとその値を取得
foreach (string key in System.Configuration.ConfigurationManager.AppSettings.AllKeys)
{
    Console.WriteLine("{0} : {1}",
        key, System.Configuration.ConfigurationManager.AppSettings[key]);
}

.NET Framework 1.1以前では、ConfigurationSettings.AppSettingプロパティを使います。

VB.NET
コードを隠すコードを選択
'指定したキーの値を取得
Console.WriteLine(System.Configuration.ConfigurationSettings.AppSettings("Comment"))

'すべてのキーとその値を取得
Dim key As String
For Each key In System.Configuration.ConfigurationSettings.AppSettings.AllKeys
    Console.WriteLine("{0} : {1}", _
        key, System.Configuration.ConfigurationSettings.AppSettings(key))
Next
C#
コードを隠すコードを選択
//指定したキーの値を取得
Console.WriteLine(System.Configuration.ConfigurationSettings.AppSettings["Comment"]);

//すべてのキーとその値を取得
foreach (string key in System.Configuration.ConfigurationSettings.AppSettings.AllKeys)
{
    Console.WriteLine("{0} : {1}",
        key, System.Configuration.ConfigurationSettings.AppSettings[key]);
}

上記の結果、次のように出力されます。

Hoge Hoge
Application Name : MyApplication
Application Version : 1.0.0.0
Comment : Hoge Hoge
  • 履歴:
  • 2007/2/2 .NET Framework 2.0以降に関する記述を追加。
  • 2013/5/29 説明をより分かりやすく書き換えた。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • 「???を参照に追加します」の意味が分からないという方は、こちらをご覧ください。
  • .NET Tipsをご利用いただく際は、注意事項をお守りください。