このクラスにより、ASP.NETアプリケーションは、Oracleデータベースからサイト・マップ情報を取得できます。
クラスの継承
System.Object
System.Configuration.Provider.ProviderBase
System.Web.SiteMapProvider
System.Web.StaticSiteMapProvider
Oracle.Web.SiteMap.OracleSiteMapProvider
宣言
// C# Public class OracleSiteMapProvider: StaticSiteMapProvider, IDisposable
スレッド安全性
すべてのパブリック静的メソッドはスレッドセーフですが、インスタンス・メンバーがスレッドセーフであることは保証されません。
備考
このクラスにより、ASP.NETアプリケーションは、Oracleデータベースからサイト・マップ情報を読取りおよびロードできます。
例
次に、OracleSiteMapProviderをデフォルト・プロバイダとして使用するASP.NETアプリケーションのweb.configの例を示します。この構成では、machine.configファイルで指定された接続文字列とデフォルト属性値を使用します。
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.web>
<siteMap defaultProvider="OracleSiteMapProvider"/>
</system.web>
</configuration>
次に、OracleSiteMapProviderをデフォルト・プロバイダとして使用し、カスタマイズされた設定とアプリケーション固有の接続文字列を使用するASP.NETアプリケーションのweb.configの例を示します。
<?xml version="1.0"?>
<configuration xmlns=
"http://schemas.microsoft.com/.NetConfiguration/v2.0">
<connectionStrings>
<add name="my_sitemap_app_con_string" connectionString=
"User Id=scott;Password=tiger;Data Source=Oracle"/>
</connectionStrings>
<system.web>
<!-- Enable and customize OracleSiteMapProvider -->
<siteMap defaultProvider="CustomOracleSiteMapProvider">
<providers>
<add name="CustomOracleSiteMapProvider"
type="Oracle.Web.SiteMap.OracleSiteMapProvider,
Oracle.Web, Version=2.111.6.20, Culture=neutral,
PublicKeyToken=89b483f429c47342"
connectionStringName="my_sitemap_app_con_string"
applicationName="my_sitemap_app"
securityTrimmingEnabled="false"/>
</providers>
</siteMap>
</system.web>
</configuration>
applicationName属性は、ASP.NETアプリケーションごとに一意の値に設定する必要があります。
要件
ネームスペース: Oracle.Web.SiteMap
アセンブリ: Oracle.Web.dll
Microsoft .NET Frameworkバージョン: 2.0以降
Oracle Database 10gリリース2(10.2)以降では、OracleSiteMapProviderに変更通知権限が必要です。
次の表にOracleSiteMapProviderメンバーをリストします。
OracleSiteMapProviderコンストラクタ
OracleSiteMapProviderコンストラクタを、表4-1にリストします。
OracleSiteMapProvider静的メソッド
OracleSiteMapProvider静的メソッドを、表4-2にリストします。
表4-2 OracleSiteMapProvider静的メソッド
| 静的メソッド | 説明 |
|---|---|
|
|
|
|
|
|
OracleSiteMapProviderパブリック・プロパティ
OracleSiteMapProviderパブリック・プロパティを、表4-3にリストします。
表4-3 OracleSiteMapProviderパブリック・プロパティ
| パブリック・プロパティ | 説明 |
|---|---|
|
|
異なるアプリケーションのサイト・マップ・データを区別するアプリケーションの名前を取得または設定します |
|
|
コマンドが例外で実行を終了するまでに実行可能な秒数を取得します |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OracleSiteMapProviderパブリック・メソッド
OracleSiteMapProviderパブリック・メソッドを、表4-4にリストします。
表4-4 OracleSiteMapProviderパブリック・メソッド
| パブリック・メソッド | 説明 |
|---|---|
|
|
Oracleデータベースからサイト・マップ・データをロードすることにより、 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ASP.NETアプリケーション構成ファイルで指定されたプロパティ値で |
|
|
|
このコンストラクタでは、OracleSiteMapProviderクラスの新規インスタンスがインスタンス化されます。
オーバーロード・リスト:
このコンストラクタでは、OracleSiteMapProviderクラスのインスタンスが作成されます。
このコンストラクタでは、OracleSiteMapProviderクラスの新規インスタンスがインスタンス化されます。
宣言
// C# public OracleSiteMapProvider();
備考
OracleSiteMapProviderコンストラクタは、アプリケーションの構成ファイルで指定されたOracleSiteMapProviderクラスのインスタンスを作成するために、ASP.NETによって呼び出されます。OracleSiteMapProviderコンストラクタの初期化値は、Initializeメソッドを通じて渡されます。
このコンストラクタは、アプリケーションで直接使用されることを意図していません。
OracleSiteMapProvider静的メソッドを、表4-5にリストします。
表4-5 OracleSiteMapProvider静的メソッド
| 静的メソッド | 説明 |
|---|---|
|
|
|
|
|
|
OracleSiteMapProviderパブリック・プロパティを、表4-6にリストします。
表4-6 OracleSiteMapProviderパブリック・プロパティ
| パブリック・プロパティ | 説明 |
|---|---|
|
|
異なるアプリケーションのサイト・マップ・データを区別するアプリケーションの名前を取得または設定します |
|
|
コマンドが例外で実行を終了するまでに実行可能な秒数を取得します |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
このプロパティでは、異なるアプリケーションのサイト・マップ・データを区別するアプリケーションの名前を取得または設定します。
宣言
// C#
public string ApplicationName{get; set;}
プロパティ値
アプリケーションの名前。applicationName属性がアプリケーション構成ファイルで指定されていない場合、または値が空の文字列の場合は、このプロパティがアプリケーションの仮想パスに設定されます。
例外
HttpException - ApplicationNameプロパティが、高いASP.NETホスティング権限を持たない呼び出し元によって設定されました。
System.Configuration.Provider.ProviderException - 指定されたアプリケーション名が256文字を超えています。
ArgumentException - 指定されたアプリケーション名が空の文字列またはnull参照です。
備考
ApplicationNameプロパティの文字列値は、ユーザー情報の編成に使用されます。
ユーザー情報はアプリケーション名ごとに一意に格納されるため、複数のASP.NETアプリケーションが、同じデータ・ソースを使用したり、重複するユーザー名を作成したりできます。このプロパティは、プログラムで設定するか、Webアプリケーションの構成ファイルでapplicationName属性を使用して宣言で設定できます。構成ファイル内の属性名は、大文字と小文字が区別されます。
ApplicationNameプロパティはスレッドセーフではありません。プログラム・コードでは、ユーザーにWebアプリケーションでのApplicationNameプロパティの設定を許可しないことをお薦めします。
このプロパティは、コマンドが例外で実行を終了するまでに実行可能な秒数を取得します。
宣言
// C#
public int CommandTimeout {get;}
プロパティ値
int
備考
プロバイダをカスタマイズするために、ASP.NET開発者は、commandTimeout属性を使用してweb.configファイルでこのプロパティに整数値を設定できます。
デフォルト値は30秒です。構成ファイル内の属性名は、大文字と小文字が区別されます。
OracleSiteMapProviderパブリック・メソッドを、表4-7にリストします。
表4-7 OracleSiteMapProviderパブリック・メソッド
| パブリック・メソッド | 説明 |
|---|---|
|
|
Oracleデータベースからサイト・マップ・データをロードすることにより、 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ASP.NETアプリケーションの構成ファイルで指定されたプロパティ値で |
|
|
|
このメソッドは、Oracleデータベースからサイト・マップ・データをロードすることにより、SiteMapNodeのSiteMapツリーを構築します。
宣言
// C# Public override SiteMapNode BuildSiteMap();
戻り値
サイト・マップ・ナビゲーション構造のルートSiteMapNode。
例外
InvalidOperationException - OracleWebEventProviderインスタンスが初期化されていません。
ProviderException - 次のいずれかの条件が存在します。
ルート・ノードが見つかりません
複数のルート・ノードが見つかりました。
ノードの親ノードが見つかりません。
ConfigurationErrorsException - 次のいずれかの条件が存在します。
SiteMapNodeのロールに有効でない文字が含まれています。
URLが、一意でないSiteMapNodeに対して解析されています。
SiteMapNodeで、重複するKeyの値が検出されました。
SiteMapNodeのURLの解析中にエラーが発生しました。
備考
このメソッドは、データベースからサイト・マップ・データをフェッチし、サイト・マップ・ノードのツリーをメモリーに作成します。OracleSiteMapProviderオブジェクトでは、データベース変更通知をサブスクライブして、データベース内のサイト・マップ・データの変更について通知を受けることを選択できます。このメソッドはスレッドセーフです。
|
関連項目:
|
このメソッドは、OracleSiteMapProviderインスタンスを、ASP.NETアプリケーション構成ファイル(web.config)で指定されたプロパティ値で初期化します。
宣言
// C# Public override void Initialize(string name, NameValueCollection config);
パラメータ
name
初期化するOracleSiteMapProviderインスタンスの名前。
config
サイト・マップ・プロバイダの構成オプションの名前と値を含むSystems.Collections.Specialized.NameValueCollectionオブジェクト。
例外
ArgumentNullException - configパラメータがnullです。
InvalidOperationException - SiteMapProviderはすでに初期化されています。
ProviderException - 次のいずれかの条件が存在します。
構成ファイル内のconnectionStringName属性がnullまたは空です。
connectionStringName属性の値に対応する接続文字列がnullまたは空です。
構成ファイルに、認識されない属性が含まれています。
プロバイダの初期化中にエラーが発生しました。
備考
Initializeメソッドは、アプリケーションによって直接呼び出されることを意図していません。