[.NET]カスタマイズした構成情報の利用(.NET1.1以前が対象) [Programming .NET Tips]
[ポイント]
(1)カスタム構成セクションとは?
通常、アプリケーションの構成情報は、appSettingsノード配下の
addノード(key属性とvalue属性)に記述するルールですが、
独自のルール(独自のXMLタグ)で定義することもできます。
この独自のXMLタグで定義された構成情報を、「カスタム構成セクション」と呼びます。
「カスタム構成セクション」にアクセスする為には、
プログラム上で「カスタム構成セクションハンドラ」クラスを実装し、
構成ファイルに「カスタム構成セクションハンドラ」を追加する必要があります。
(2)カスタム構成セクションハンドラとは?
カスタム構成セクションにアクセスする為には、
その独自のXMLタグを解析する必要があります。
その独自のXMLタグを解析するクラスを、「カスタム構成セクションハンドラ」と呼びます。
カスタム構成セクションハンドラは、以下の(a)(b)の条件に従って実装する必要があります。
(a)System.Configuration.IConfigurationSectionHandlerインタフェースを実装する。
(b)IConfigurationSectionHandlerインタフェースのCreateメソッドに、
カスタム構成セクションを解析する処理を実装する。
(3)カスタム構成セクションハンドラが、カスタム構成セクションにアクセスするには?
カスタム構成セクションハンドラがカスタムセクションにアクセスする為には、
構成ファイルに、構成セクションハンドラを追加する必要があります。
追加することにより、カスタム構成セクションハンドラとカスタムセクションの対応付けを
定義したことになります。
(4)利用可能な.NET Frameworkのバージョンは?
本記事のサンプルは、.NET1.1以前で主流だった方法です。
.NET2.0以降では、「ConfigurationSection」クラスを使用する方法が
推奨されています。(.NET2.0以降でも使用可能)
(5))参考文献
・『MSDN Library for VisualStudio2008日本語版』
・『MCTSスキルチェック問題集70-536 .NET Framework2.0アプリケーション構築基礎』
カスタム構成セクションにアクセスする例を、以下の(1)~(4)に分けて示します。
(1)カスタム構成セクションの定義
例として、日本の地域と県、県と県庁所在地の対応を定義しています。
[ソース]
(2)カスタム構成セクションハンドラの実装
System.Configuration.IConfigurationSectionHandlerインタフェースを
実装したクラスを定義します。
System.Configuration.IConfigurationSectionHandlerインタフェースの
Createメソッドに、カスタム構成セクションのアクセス処理を実装します。
この例では、カスタム構成セクションから、県と県庁所在地の一覧を取得し、
HashTableに格納しています。
[ソース]
(3)構成ファイルにカスタム構成セクションハンドラの追加
「myCustomGroup」、「Country」の対応付けを定義し、
更に「Country」のセクションハンドラを定義しています。
type属性には、カスタム構成セクションハンドラのアセンブリ修飾名を指定します。
アセンブリ修飾名については、
MessageBox.Show( _
New MyCustomConfigHandler1_1().GetType().AssemblyQualifiedName)
で確認できます。
[ソース]
(4)構成情報の取得
以下に、カスタム構成セクションハンドラを使用して構成情報を取得する例を示します。
取得には、System.Configuration.ConfigurationSettingsクラスの
GetConfigメソッドを使用します。(※.NET2.0以降では警告がでます。)
GetConfigの引数には、起点となるカスタム構成セクションのノード名を指定します。
[ソース]
(1)カスタム構成セクションとは?
通常、アプリケーションの構成情報は、appSettingsノード配下の
addノード(key属性とvalue属性)に記述するルールですが、
独自のルール(独自のXMLタグ)で定義することもできます。
この独自のXMLタグで定義された構成情報を、「カスタム構成セクション」と呼びます。
「カスタム構成セクション」にアクセスする為には、
プログラム上で「カスタム構成セクションハンドラ」クラスを実装し、
構成ファイルに「カスタム構成セクションハンドラ」を追加する必要があります。
(2)カスタム構成セクションハンドラとは?
カスタム構成セクションにアクセスする為には、
その独自のXMLタグを解析する必要があります。
その独自のXMLタグを解析するクラスを、「カスタム構成セクションハンドラ」と呼びます。
カスタム構成セクションハンドラは、以下の(a)(b)の条件に従って実装する必要があります。
(a)System.Configuration.IConfigurationSectionHandlerインタフェースを実装する。
(b)IConfigurationSectionHandlerインタフェースのCreateメソッドに、
カスタム構成セクションを解析する処理を実装する。
(3)カスタム構成セクションハンドラが、カスタム構成セクションにアクセスするには?
カスタム構成セクションハンドラがカスタムセクションにアクセスする為には、
構成ファイルに、構成セクションハンドラを追加する必要があります。
追加することにより、カスタム構成セクションハンドラとカスタムセクションの対応付けを
定義したことになります。
(4)利用可能な.NET Frameworkのバージョンは?
本記事のサンプルは、.NET1.1以前で主流だった方法です。
.NET2.0以降では、「ConfigurationSection」クラスを使用する方法が
推奨されています。(.NET2.0以降でも使用可能)
(5))参考文献
・『MSDN Library for VisualStudio2008日本語版』
・『MCTSスキルチェック問題集70-536 .NET Framework2.0アプリケーション構築基礎』
カスタム構成セクションにアクセスする例を、以下の(1)~(4)に分けて示します。
(1)カスタム構成セクションの定義
例として、日本の地域と県、県と県庁所在地の対応を定義しています。
[ソース]
| |
例:カスタム構成セクションの定義 |
(2)カスタム構成セクションハンドラの実装
System.Configuration.IConfigurationSectionHandlerインタフェースを
実装したクラスを定義します。
System.Configuration.IConfigurationSectionHandlerインタフェースの
Createメソッドに、カスタム構成セクションのアクセス処理を実装します。
この例では、カスタム構成セクションから、県と県庁所在地の一覧を取得し、
HashTableに格納しています。
[ソース]
| |
[VB.NET]例:カスタム構成セクションハンドラの実装 |
(3)構成ファイルにカスタム構成セクションハンドラの追加
「myCustomGroup」、「Country」の対応付けを定義し、
更に「Country」のセクションハンドラを定義しています。
type属性には、カスタム構成セクションハンドラのアセンブリ修飾名を指定します。
アセンブリ修飾名については、
MessageBox.Show( _
New MyCustomConfigHandler1_1().GetType().AssemblyQualifiedName)
で確認できます。
[ソース]
| |
例:カスタム構成セクションハンドラの追加 |
(4)構成情報の取得
以下に、カスタム構成セクションハンドラを使用して構成情報を取得する例を示します。
取得には、System.Configuration.ConfigurationSettingsクラスの
GetConfigメソッドを使用します。(※.NET2.0以降では警告がでます。)
GetConfigの引数には、起点となるカスタム構成セクションのノード名を指定します。
[ソース]
| |
[VB.NET]例:カスタム構成セクションハンドラを使用して構成情報を取得する |
コメント 0