サンプル
コードのダウンロード (vbmigtips_Config.exe, 94.7 KB)
Visual Basic
.NET では、アプリケーションの情報を XML
形式で管理するアプリケーション構成ファイルという機能があります。そこで今回は、アプリケーション構成ファイルの設定方法や読み込み、書き込みなどの方法について紹介します。
まず、アプリケーション構成ファイルの設定を行います。[プロジェクト]メニューの[新しい項目の追加]を選択し、ダイアログの[テンプレート]から[アプリケーション構成ファイル]を選びます。ファイル名を入力し
(今回は「App.config」です。)、「開く」ボタンを選択することで、アプリケーション構成ファイルが追加されます。追加したアプリケーション構成ファイル
(App.config) は、以下のようになっています。
.gif)
図1
構成ファイルへデータを書き込む場合、要素を追加し、さらにその中に要素を追加していきます。たとえば、Application
Name キーのデータ「MyApplication」を書き込む場合、以下のように記述します (太字をリスト1
に追加します)。
|
<?xml version="1.0"
encoding="utf-8" ?>
<configuration>
<appSettings>
<add
key="Application Name" value="MyApplication" />
</appSettings>
</configuration> |
リスト1
アプリケーション構成ファイルに書き込まれたデータを読み込むには、ConfigurationSettings.AppSettings
プロパティを使用します。実装コードは以下のとおりです。
|
Private Sub Button2_Click(ByVal
sender As System.Object, ByVal e As System.EventArgs) Handles
Button2.Click
MessageBox.Show("Application
Name = " & _
System.Configuration.ConfigurationSettings.AppSettings("Application
Name"))
End
Sub |
リスト2
ConfigurationSettings.AppSettings
プロパティで、要素構成セクションの構成設定を取得します。上記 (リスト2)
の「System.Configuration.ConfigurationSettings.AppSettings("Application
Name")」では、Application Name キーのデータを取得します。上記を実装し、図1
の「読み込み」ボタンをクリックすると、Application Name
キーのデータ「MyApplication」を取得し、メッセージボックスで表示します (図2)。
.gif)
図2
.gif)
図3
これまで、アプリケーション構成ファイルの設定と読み込みの方法について紹介しました。続いては、リスト1
のアプリケーション構成ファイルに保存されているデータの変更や追加について紹介します。
今回は、Application
Name キーのデータを フォーム (図2) の Name プロパティの値に変更します。また、フォームの Width プロパティと
Height プロパティの値をアプリケーション構成ファイルに追加します。実装コードは以下のとおりです。
|
Private Sub Button1_Click(ByVal
sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
Dim asm As
System.Reflection.Assembly =
System.Reflection.Assembly.GetExecutingAssembly()
Dim
appConfigPath As String
appConfigPath =
System.IO.Path.GetDirectoryName(asm.Location) +
"\Config.exe.config"
Dim doc As
System.Xml.XmlDocument = New System.Xml.XmlDocument
doc.Load(appConfigPath)
Dim node As
System.Xml.XmlNode =
doc("configuration")("appSettings")
Dim n As
System.Xml.XmlNode
For Each n In
doc("configuration")("appSettings")
If n.Name =
"add" Then
If
n.Attributes.GetNamedItem("key").Value = "Application Name"
Then
n.Attributes.GetNamedItem("value").Value
= Me.Text
End If
End If
Next
Dim newNode As
System.Xml.XmlElement = doc.CreateElement("add")
newNode.SetAttribute("key",
"Form Size")
newNode.SetAttribute("value",
Me.Width & "," & Me.Height)
node.AppendChild(newNode)
doc.Save(appConfigPath)
End
Sub |
リスト3
アプリケーション構成ファイルを XML
DOM に読み込むため XmlDocument クラスを使用します。リスト3 の「Dim asm As
System.Reflection.Assembly =
System.Reflection.Assembly.GetExecutingAssembly()」では、アプリケーションのアセンブリ情報を取得し、「appConfigPath
= System.IO.Path.GetDirectoryName(asm.Location) +
"\Config.exe.config"」で構成ファイルのフルパスを取得します。ここでは、アプリケーションをビルドすると作成される、プロジェクト名.exe.congif ファイルを指定します。「doc.Load(appConfigPath)」で構成ファイルをXML
DOM に読み込みます。
「For Each n In
doc("configuration")("appSettings")...Next」部分では appSettings
要素内を列挙し、Application Name キーの値をフォームの Name プロパティ値に変更します。「Dim newNode
As System.Xml.XmlElement = doc.CreateElement("add") 」では新しい add
要素を作成し、「newNode.SetAttribute("key", "Form Size")」で新しいキー Form Size
を設定します。さらに「newNode.SetAttribute("value", Me.Width & "," &
Me.Height)」で Form Size キーにフォームの Width プロパティと Height
プロパティの値を設定します。
最後に「doc.Save(appConfigPath)」で変更されたアプリケーション構成ファイルを保存します。リスト3
を実装し図2 の「書き込み」ボタンをクリックすると、図4 のようにフォームの Name プロパティ、Width プロパティと
Height プロパティのデータがファイルに書き込まれます。
.gif)
図4
図4
は、アプリケーションをビルドすると作成される構成ファイルです。この構成ファイルは、プロジェクト名.exe.congif
の名で自動作成されます。また、自動作成された際、このファイルは、app.config ファイルの内容が格納されます。