ターン:http://www.cnblogs.com/Gerry-BJ/archive/2008/08/06/1261712.html
C#で設定ファイルを読み込む方法
2007年11月6日火曜日12:53
1.プロファイルの概要:
アプリケーション構成ファイルのXMLタグおよび属性は、大文字と小文字が区別され、標準のXMLファイルです。必要に応じて、開発者はアプリケーションを再コンパイルすることなく、設定を変更するには、設定ファイルを使用することができます変更することができます。ルート設定ファイルの構成です。私たちはしばしば訪れ、それがネットあらかじめ定義された構成セクションで、のappSettingsです。私たちは、多くの場合、以下のフォームをご利用のようなアーキテクチャのプロファイルがあります。第一印象について、以下の例により、より明確に理解があるでしょう。以下、「設定部」は、構成XMLノードとして理解することができます。
コモンモードの設定ファイル:
<構成>
<configSections> //宣言領域設定部と、設定名前空間の宣言を含むセクション
<セクション> //宣言構成セクション
//設定構成セクション定義<sectionGroup>は、
構成セクション宣言<セクション> //構成セクション群
<のappSettings> //あらかじめ定義された構成セクション
//設定セクション設定領域<構成セクションのカスタム要素>
設定ファイルやアクセス方法の2だけのappSettingsセクション
ここでは最も一般的なアプリケーション構成ファイル、唯一のappSettingsセクションの例です。
<?xml version = "1.0"エンコード= "UTF-8"?>
<設定>
<のappSettings>
<キー= "のConnectionString"値= "ユーザーID = SAを追加し、データソース=;パスワード=;初期カタログ=テスト;プロバイダ= SQLOLEDB.1;」/>
<キー= "TemplatePATH"値= "テンプレート" />を追加
</のappSettings>
</設定を>
のは、どのような設定ファイルの方法を見てみましょう。
ストリング_connectionString = ConfigurationSettings.AppSettings [ "のConnectionString"]。
AppSettingsにConfigurationSettingsは、設定ファイルを設定する直接方法することができ、クラスの静的プロパティを使用します。プロパティのこのタイプは、NameValueCollectionのです。
3.カスタムプロファイル
3.1カスタム構成セクション
加えて、<configSections>中の</ configSections>構成セクション宣言構成部(上部プロファイルモード「<セクション>」):ユーザ定義の構成部と、構成ファイルは2つの部分に分割されます変数宣言、その使用に幾分似<configSections> </ configSections>構成セクション(上部プロファイルモード「<構成セクションのカスタム要素を>」)、設定した後。声明では、次のように設定ファイルがある宣言しています。
<セクション名=「」タイプの=「」/>
<節>:新しい構成セクションを宣言し、新しい構成セクションを作成することができます。
名前:カスタム構成セクションの名前。
タイプ:カスタム構成セクションの種類、System.Configuration.SingleTagSectionHandler、System.Configuration.DictionarySectionHandler、System.Configuration.NameValueSectionHandler含みます。
異なるタイプは、構成セクションは同じではありませんどのように、コンフィギュレーションファイルの操作に違いがある最後にアクセスしただけではなく。ここでは、それは、3つの異なるタイプが含まれ、コンフィギュレーションファイルの例を与えます。
<?xml version = "1.0"エンコード= "UTF-8"?>
<構成>
<configSections>
<セクション名= "Test1を"タイプ= "System.Configuration.SingleTagSectionHandler" />
<セクション名= "Test2を"タイプ= "System.Configuration.DictionarySectionHandler" />
<セクション名= "Test3は"タイプ= "System.Configuration.NameValueSectionHandler" />
</ configSections>
<Test1を設定1 = "こんにちは"設定2 = "世界" />
<Test2を>
<追加キー= "こんにちは"値= "世界" />
</ Test2を>
<Test3は>
<キー= "こんにちは"値を追加=」世界」/>
</ Test3は>
</ configuration>の
私たちは、カスタム構成セクションは、上記で説明されます。<セクション名=「Test1を」タイプ用い宣言セクションで =「System.Configuration.SingleTagSectionHandler」/> 名前Test1を、型SingleTagSectionHandlerを宣言構成セクションを。構成セクションの部分を使用して提供される<Test1をSETTING1 =「こんにちは」設定2 =「世界」/> 構成セクション、こんにちは、ある値の第1のセットを設けられた第二の値は、もちろん、また、より多くの世界であります。他の2つの構成部分と類似しています。
ここでは、プログラムの中でこれらのカスタム構成セクションにアクセスする方法を見て。私たちは、カスタム構成セクションについての情報を取得するために、静的メソッドGETCONFIGにConfigurationSettingsクラスを使用していました。
パブリック静的オブジェクトGETCONFIG(文字列セクション名)。
ここでは3つの構成セクションにアクセスするためのコードは次のとおりです。
//访问配置节Test1を
IDictionaryをIDTest1 =(IDictionaryを)ConfigurationSettings.GetConfig( "Test1を")。
文字列str =(文字列)IDTest1 [ "SETTING1"] +」 "+(文字列)IDTest1 ["設定2" ]。
MessageBox.Show(STR)。//输出のHello World
//访问配置节のTest1的方法2
列[] values1 =新しい文字列[IDTest1.Count]。
IDTest1.Values.CopyTo(values1,0)。
MessageBox.Show(values1 [0] +」「+ values1 [1])。//输出のHello World
//访问配置节Test2を
IDictionaryをIDTest2 =(IDictionaryを)ConfigurationSettings.GetConfig( "Test2を");
文字列[]キー=新しい文字列[IDTest2.Keys.Count]。
文字列[]の値=新しい文字列[IDTest2.Keys.Count]。
IDTest2.Keys.CopyTo(キー、0);
IDTest2.Values.CopyTo(値0)。
MessageBox.Show(キー[0] +」「+値[0])。
//访问配置节Test3は
NameValueCollectionのNC =(NameValueCollectionの)ConfigurationSettings.GetConfig(」
MessageBox.Show(nc.AllKeys [0] .ToString()+ " "+ NC [" こんにちは"])。//输出のHello World
上記のコードによって、私たちはGETCONFIGによって異なるタイプの異なる種類を見ることができるコンテンツの具体的な構成を得るために戻っ同じではありません。構成セクションハンドラの
戻り値の型
SingleTagSectionHandler
Systems.Collections.IDictionary
DictionarySectionHandler
Systems.Collections.IDictionary
NameValueSectionHandler
Systems.Collections.Specialized.NameValueCollection
3.2カスタム構成セクショングループ
<sectionGroup>要素、同じグループに割り当てられた部分と同様の構成を使用して構成セクショングループ。グループ項設定部は、セグメントに属する構成部分が部分要素を含む、構成部宣言グループ<configSections>要素を作成し、配置し、グループの<sectionGroup>要素ました。以下は、グループ記載の輪郭部の構成例を示す図です。
<?xml version = "1.0"エンコード= "UTF-8"?>
<構成>
<configSections>
<sectionGroup名= "TestGroupと">
<セクション名= "テスト"タイプ= "System.Configuration.NameValueSectionHandler" />
< / sectionGroup>
</ configSections>
<TestGroupと>
<テスト>
<追加キー= "こんにちは"値= "世界" />
</テスト>
</ TestGroupと>
</ configuration>の
下面是访问这个配置节组的代码:
NameValueCollectionのNC =(NameValueCollectionの)ConfigurationSettings.GetConfig( "TestGroupと/テスト")。
MessageBox.Show(NC。AllKeys [0] .ToString()+ " "+ NC [" こんにちは"])。//输出のHello World
ます。https://my.oschina.net/cookblack/blog/621362で再現