「アプリケーション構成ファイル」とは、アプリケーション固有の設定が記述された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」を追加する必要があります。
'指定したキーの値を取得 '見つからないときは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
//指定したキーの値を取得 //見つからないときは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プロパティを使います。
'指定したキーの値を取得 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
//指定したキーの値を取得 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