Visual C# を使用してアプリケーション構成ファイルのカスタム情報を格納および取得する
この記事では、関連するアプリケーションによって実行時に後で取得できる構成ファイルからカスタム情報を格納する方法について説明します。 アプリケーションに関連付けられているデータを定義する必要がある場合に役立ちます。
元の製品バージョン: Visual C#
元の KB 番号: 815786
要件
次の一覧では、必要な推奨ハードウェアとソフトウェアの概要を示します。
- Microsoft Windows
- Visual C#
この記事では、次のトピックについて理解していることを前提としています。
- 拡張マークアップ言語 (XML)
- .NET 構成ファイル
構成ファイルを読み取るコンソール アプリケーションを作成する
アプリケーション設定は、アプリケーションに関連付けられている構成ファイルに格納できます。 構成ファイルは XML 形式で保存されます。
System.Configuration
.NET Frameworkの 名前空間と System.Collections.Specialized
名前空間には、実行時に .NET アプリケーション構成ファイルから情報を取得するために必要なクラスが含まれています。
実行時に関連付けられている構成ファイルの内容を読み取るコンソール アプリケーションを作成するには、次の手順に従います。
Visual Studio .NET または Visual Studio を起動します。
[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] を選択します。
[プロジェクトの種類] で [Visual C#] を選択し、[テンプレート] の [コンソール アプリケーション] を選択します。 プロジェクトに ConConfig という名前を 付けます。 既定では、Visual C# は Program という名前のクラスを作成します。
注:
Visual Studio .NET で、[プロジェクトの種類] で [Visual C# プロジェクト] を選択し、[テンプレート] の [コンソール アプリケーション] を選択します。 プロジェクトに ConConfig という名前を 付けます。 既定では、Visual C# は Class1 という名前のクラスを作成します。
[ソリューション エクスプローラー] ウィンドウが表示されていることを確認します。 表示されない場合は、Ctrl + Alt + L キーの組み合わせを押します。
ソリューション エクスプローラーでプロジェクト名を右クリックし、[追加] を選択し、[新しい項目] を選択します。
[ 新しい項目の追加] ボックスの一覧で、[ XML ファイル] を選択します。
[ 名前 ] テキスト ボックスに「 App.config」と入力し、[ 追加] を選択します。
アプリケーション構成ファイルを使用して、キー/値形式で保存するカスタム アプリケーション設定を収集できます。 関連する構成ファイルのセクションに
<appSettings>
要素を含<add>
めることができます。 各キーと値のペアには、1 つの<add>
要素があります。 要素の<add>
形式は次のとおりです。<add key="Key0" value="0" />
要素を
<appSettings>
含む<add>
セクションを、 と</configuration>
タグの間の構成ファイルに<configuration>
追加します。たとえば、次の構成ファイルには、
<appSettings>
3 つのキーと値のペアを指定するセクションが含まれています。<?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>
ソリューション エクスプローラーで、Program.csをダブルクリックしてコード ウィンドウを表示します。 コード モジュールに次のステートメントを追加します。
注:
これらのステートメントは、ファイル内の他のステートメントの前に表示する必要があります。
using System.Configuration; using System.Collections.Specialized;
次の手順に従って 、System.Configuration.dll への参照を追加します。
- [ プロジェクト ] メニューの [ 参照の追加] を選択します。
- [ 参照の追加 ] ダイアログ ボックスで、[ .NET ] タブを選択します。
- のコンポーネント名を見つけて選択します
System.Configuration
。 - [OK] を選択します。
構成ファイルのセクションの構成ファイル キーの値を
<appSettings>
保持するには、セクションで次のように文字列変数をMain
宣言します。string sAttr;
構成ファイルのセクションから指定したキーの値を
<appSettings>
取得するには、 クラスの プロパティの メソッドをAppSettings
ConfigurationManager
使用Get
します。 クラスはConfigurationManager
名前空間にありますSystem.Configuration
。 メソッドがAppSettings.Get
キーを含む文字列入力パラメーターを受け取ると、アプリケーションはキーに関連付けられている値を取得します。次のコードは、関連付けられている構成ファイルから属性の
Key0
値を取得します。 次に、この値を文字列変数にsAttr
配置します。 この値のキーが存在しない場合は、 にはsAttr
何も格納されません。sAttr = ConfigurationManager.AppSettings.Get("Key0");
アプリケーションが取得した値を [コンソール] ウィンドウに表示するには、次のようにを使用
Console.WriteLine
します。Console.WriteLine("The value of Key0 is "+sAttr);
プロパティへの 1 つの参照を
AppSettings
使用して、セクション内のすべてのキーと値のペアを<appSettings>
取得できます。 プロパティをAppSettings
使用すると、アプリケーションは関連付けられているすべてのキーと値のペアを返します。 これらのペアは型にNameValueCollection
格納されます。 にはNameValueCollection
、アプリケーションが取得する各キーのキー/値エントリが含まれます。 クラスはNameValueCollection
名前空間にありますSystem.Collections.Specialized
。NameValueCollection sAll ; sAll = ConfigurationManager.AppSettings;
の
NameValueCollection
プロパティはAllKeys
、アプリケーションが取得する各キーのエントリを持つ文字列配列を参照します。 foreach コンストラクションを使用して配列を反復処理し、AllKeys
アプリケーションが取得する各キーにアクセスします。 のAllKeys
各キー エントリは、文字列データ型です。コンストラクション内で
foreach
を使用Console.WriteLine
して、キーとそれに関連付けられた値を [コンソール] ウィンドウに表示します。 アプリケーションが処理する現在のキーは にありますs
。 のインデックスsAllNameValueCollection
として使用して、関連付けられている値を取得します。foreach (string s in sAll.AllKeys) Console.WriteLine("Key: "+ s + " Value: " + sAll.Get(s)); Console.ReadLine();
完全なコード一覧
using System;
using System.Configuration;
using System.Collections.Specialized;
namespace ConConfig
{
class Program
{
static void Main(string[] args)
{
string sAttr;
// Read a particular key from the config file
sAttr = ConfigurationManager.AppSettings.Get("Key0");
Console.WriteLine("The value of Key0: " + sAttr);
// Read all the keys from the config file
NameValueCollection sAll;
sAll = ConfigurationManager.AppSettings;
foreach (string s in sAll.AllKeys)
Console.WriteLine("Key: " + s + " Value: " + sAll.Get(s));
Console.ReadLine();
}
}
}
注:
このコードは、.NET Framework 2.0 をターゲットにしています。 .NET Framework 1.0 または .NET Framework 1.1 を使用している場合は、 クラスのすべてのインスタンスを ConfigurationManager
にConfigurationSettings
変更します。
完全な構成ファイルの一覧 (ConConfig.exe.config)
<?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>
動作することを確認する
F5 キーを押してコードを実行します。 [コンソール] ウィンドウには、関連付けられている構成ファイルのセクションの <appSettings>
キーと値のペアが次のように表示されます。
The value of Key0: 0
Key: Key0 Value:0
Key: Key1 Value:1
Key: Key2 Value:2
トラブルシューティング
構成ファイルは XML 形式で保存されます。 すべての XML 構文規則に従っていることを確認します。 XML では大文字と小文字が区別されます。 XML の形式が正しくない場合、または要素のスペルが間違っている場合は、例外が
System.Configuration.Configuration
発生します。たとえば、小文字の k ではなく大文字の K を持つ要素の
<add>
キー属性を追加した場合、またはセクションが として<AppSettings>
表示される場合 (小文字の a ではなく大文字の A を含む) 場合<appSettings>
は、エラー メッセージが表示されます。構成ファイルは、関連付けられているアプリケーションと同じフォルダーに保存する必要があります。
構成ファイル名には、次の構文を使用する必要があります。
<ApplicationName>。<ApplicationType>.configApplicationName <> はアプリケーションの名前です。 <ApplicationType> は、 などの
.exe
アプリケーションの種類です。 と.config
は、必要なサフィックスです。
関連情報
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示