Visual Basic .NET または Visual Basic 2005 を使用して、アプリケーション構成ファイル内のカスタム情報を保存および取得する方法

文書翻訳 文書翻訳
文書番号: 313405 - 対象製品
この記事は、以前は次の ID で公開されていました: JP313405
Microsoft Microsoft Visual C# .NET については、次の資料を参照してください815786
すべて展開する | すべて折りたたむ

目次

概要

この資料では、構成 (.config) ファイルにカスタム情報を保存し、関連付けられたアプリケーションによって実行時に取得できるようにする方法を紹介します。これは、アプリケーションに関連付けられたデータを定義する場合に役立ちます。


必要条件

必要なハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、および Service Pack は、次のとおりです。
  • Microsoft Windows 2000、Microsoft Windows XP、または Microsoft Windows Server 2003
  • Microsoft Visual Studio .NET (2002)、Microsoft Visual Studio .NET (2003)、または Microsoft Visual Studio 2005
この資料は、次のトピックについて詳しい知識のあるユーザーを対象としています。
  • XML (Extensible Markup Language)
  • .NET 構成ファイル

構成ファイルの内容を読み取るコンソール アプリケーションの作成

アプリケーションの設定を、アプリケーションに関連付けられた構成ファイルの中に保存することができます。構成ファイルは、XML 形式で保存されます。Microsoft .NET Framework の System.Configuration および System.Collections.Specialized 名前空間には、実行時に .NET アプリケーションの構成ファイルから情報を取得するのに必要なクラスが含まれています。

関連付けられた構成ファイルの内容を実行時に読み取るコンソール アプリケーションを作成するには、以下の手順を実行します。
  1. Visual Studio .NET または Visual Studio 2005 を起動します。
  2. Visual Basic .NET または Visual Basic 2005 で、ConConfig という名前の新しいコンソール アプリケーション プロジェクトを作成します。Visual Basic .NET または Visual Basic 2005 では、デフォルトで Module1 という名前のモジュールが作成されます。
  3. ConConfig プロジェクト フォルダを右クリックし、[追加] をポイントして、[新しい項目の追加] をクリックします。

    : Visual Studio 2005 では、ConConfig プロジェクト フォルダを右クリックし、[追加] をポイントし、[新しい項目] をクリックします。
  4. [新しい項目の追加] ダイアログ ボックスの [アプリケーション構成ファイル] テンプレートをクリックして [開く] をクリックし、App.config ファイルをプロジェクトに追加します。

    : Visual Studio .NET または Visual Studio 2005 の IDE では、App.Config は実行可能ファイルがコンパイルされるフォルダにコピーされ、<ApplicationName>.<Application Type>.config という形式の名前に変更されます。
  5. アプリケーション構成ファイルを使用して、キー/値の形式で保存したカスタムのアプリケーション設定を収集することができます。関連付けられている構成ファイルの <appSettings> セクションには、<add> 要素を追加できます。<add> 要素は、キー/値の各組に対して 1 つずつ存在し、次のような形式を取ります。
    <add key="theKey" value="theValue" />
    						
    <add> 要素を含む <appSettings> セクションを、構成ファイルの <configuration> タグと </configuration> タグの間に追加します。たとえば、以下の構成ファイルには、3 組のキー/値を指定する <appSettings> セクションが含まれています。
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    	<appSettings>
    		<add key="Key0" value="0" />
    		<add key="Key1" value="1" />
    		<add key="Key2" value="2" />
    	</appSettings>
    </configuration>
    					
  6. ソリューション エクスプローラで、[Module1.vb] をダブルクリックして Module1 のコード ウィンドウを表示します。コード モジュールに以下のステートメントを追加します。

    : これらのステートメントは、ファイル内の他のステートメントよりも前の行で指定する必要があります。
    Imports System.Configuration
    Imports System.Collections.Specialized
    					
  7. Sub Main プロシージャで、構成ファイルの <appSettings> セクション内の構成ファイル キーから取得された値を保持する文字列変数を宣言します。
    Dim sAttr As String
    					
  8. 構成ファイルの <appSettings> セクションから指定されたキーの値を取得するには、ConfigurationSettings クラスの AppSettings メソッドを使用します。ConfigurationSettings クラスは、System.Configuration 名前空間の中にあります。AppSettings メソッドが、キーを含む文字列型の入力パラメータを受け取ると、アプリケーションがそのキーに関連付けられた値を取得します。

    以下のコードでは、関連付けられた構成ファイルから Key0 属性の値を取得しています。取得した値は、文字列変数 sAttr に配置されます。この値に対するキーが存在しない場合は、sAttr に Nothing が格納されます。
    sAttr = ConfigurationSettings. AppSettings("Key0")
    					
  9. アプリケーションが取得する値をコンソール ウィンドウに表示するには、Console.WriteLine を使用します。
    Console.WriteLine("The value of Key0: " & sAttr)
    					
  10. AppSettings への 1 回の参照で、<appSettings> セクションのすべてのキー/値の組を取得することもできます。AppSettings プロパティを使用するときにパラメータを指定しなければ、関連付けられたキーと値の組がすべて返されます。これらの組は、NameValueCollection 型に格納されます。これには、アプリケーションが取得する各キーに対するキーと値のエントリが含まれています。NameValueCollection クラスは System.Collections.Specialized 名前空間にあります。
    Dim sAll As NameValueCollection
    sAll = ConfigurationSettings.AppSettings()
    					
  11. NameValueCollection の AllKeys プロパティは、アプリケーションが取得する各キーに対するエントリを含む文字列配列を参照します。For Next 構造体を使用して AllKeys 配列に反復処理を行い、アプリケーションが取得する各キーにアクセスします。AllKeys 内の各キー エントリは、文字列型になっています。
    Dim s As String
    For Each s In sAll.AllKeys
    					
  12. For Each 構造体の内部では、Console.WriteLine を使用してキーとその値をコンソール ウィンドウに表示します。アプリケーションが処理している現在のキーは、"s" の中にあります。これを sAll NameValueCollection 内で添字として使用し、関連付けられている値を取得します。

    たとえば、アプリケーションが Key0 キーを処理している場合は、sAll("Key0") で、キーに関連付けられている値が取得されます。Console.Readline ステートメントは、コンソールを一時停止します。Enter キーを押すと、アプリケーションが終了します。
        Console.WriteLine("Key: " & s & " Value: " & sAll(s))
    Next
    Console.Readline
    					

動作の検証

F5 キーを押してコードを実行します。コンソール ウィンドウには、関連付けられた構成ファイルの <appSettings> セクションから、以下のようなキーと値の組が表示されます。
The value of Key0: 0
Key: Key0 Value:0
Key: Key1 Value:1
Key: Key2 Value:2
					

完全なコード リスト

Imports System.Configuration
Imports System.Collections.Specialized

Module Module1

    Sub Main()
        Dim sAttr As String

        sAttr = ConfigurationSettings.AppSettings("Key0")
        Console.WriteLine("The value of Key0: " & sAttr)
        
        Dim sAll As NameValueCollection
        sAll = ConfigurationSettings.AppSettings()

        Dim s As String
        For Each s In sAll.AllKeys
            Console.WriteLine("Key: " & s & " Value: " & sAll(s))
        Next
		  Console.ReadLine()
    End Sub

End Module
				

構成ファイルの内容 (ConConfig.exe.config)

<configuration>
	<appSettings>
		<add key="Key0" value="0"/>
		<add key="Key1" value="1"/>
		<add key="Key2" value="2"/>
	</appSettings>
</configuration>
				

トラブルシューティング

  • 構成ファイルは XML 形式で保存されるため、あらゆる XML 構文規則に例外なく従う必要があります。XML では、大文字と小文字が区別されます。XML の形式が正しくない場合や、要素のスペルが誤っている場合には、System.Configuration.Configuration 例外が発生します。

    たとえば、<add> 要素の key 属性を小文字の "k" ではなく大文字の "K" で追加している場合や、<appSettings> セクションが <AppSettings> (小文字の "a" ではなく大文字の "A" を使用) となっている場合には、エラー メッセージが表示されます。
  • 構成ファイルは、プロジェクトに含まれている必要があります。
  • Visual Studio 環境外で構成ファイルを作成する場合には、その名前に以下の構文を使用する必要があります。また、関連付けられているアプリケーションと同じフォルダに置く必要があります。
    ApplicationName.ApplicationType.config
    ApplicationName はアプリケーションの名前、ApplicationType はアプリケーションの種類 (exe など) です。.config は必須のサフィックスです。

関連情報

詳細については、次の MSDN Web サイトを参照してください。
ConfigurationSettings.AppSettings プロパティ
http://msdn2.microsoft.com/ja-jp/library/system.configuration.configurationsettings.appsettings.aspx
System.Configuration 名前空間
http://www.microsoft.com/japan/msdn/library/ja/cpref/html/frlrfSystemConfiguration.asp

プロパティ

文書番号: 313405 - 最終更新日: 2006年11月13日 - リビジョン: 5.1
この資料は以下の製品について記述したものです。
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
キーワード:?
kbvs2005swept kbvs2005applies kbconfig kbhowtomaster KB313405
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com