このクラスにより、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.112.2.0, 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
Oracle Providers for ASP.NETのバージョン: Oracle Providers for ASP.NET 2.0およびOracle Providers for ASP.NET 4
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
オブジェクトでは、データベース変更通知をサブスクライブして、データベース内のサイト・マップ・データの変更について通知を受けることを選択できます。このメソッドはスレッドセーフです。
関連項目:
|
このメソッドは、このインスタンスのすべてのリソースを解放します。
宣言
// C# public override void Dispose();
備考
このメソッドは、アプリケーション・ドメインが閉じられたときにこのインスタンスのすべてのリソースを解放します。
このメソッドは、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
メソッドは、アプリケーションによって直接呼び出されることを意図していません。