SiteMapProvider.RootProvider プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在のプロバイダー階層のルート SiteMapProvider オブジェクトを取得します。
public:
virtual property System::Web::SiteMapProvider ^ RootProvider { System::Web::SiteMapProvider ^ get(); };
public virtual System.Web.SiteMapProvider RootProvider { get; }
member this.RootProvider : System.Web.SiteMapProvider
Public Overridable ReadOnly Property RootProvider As SiteMapProvider
プロパティ値
現在のプロバイダーが属するプロバイダー階層の最上位サイト マップ プロバイダーである SiteMapProvider。
例外
現在のサイト マップ プロバイダーへの循環参照があります。
例
次のコード例は、抽象SiteMapProviderクラスを実装するRootProviderクラスにプロパティを実装する方法を示しています。 これは SimpleTextSiteMapProvider
、単純なロジックを使用して、現在のプロバイダーがプロバイダー階層の一部であるかどうかを判断します。 プロバイダーが階層の一部である場合は、親プロバイダーの RootProvider プロパティを独自のプロバイダーとして使用します。 プロバイダーが階層の一部でない場合、プロバイダーは独自のルート プロバイダーです。
このコード例は、SiteMapProvider クラスのために提供されている大規模な例の一部です。
// Implement the ParentProvider property.
public override SiteMapProvider ParentProvider
{
get
{
return parentSiteMapProvider;
}
set
{
parentSiteMapProvider = value;
}
}
// Implement the RootProvider property.
public override SiteMapProvider RootProvider
{
get
{
// If the current instance belongs to a provider hierarchy, it
// cannot be the RootProvider. Rely on the ParentProvider.
if (this.ParentProvider != null)
{
return ParentProvider.RootProvider;
}
// If the current instance does not have a ParentProvider, it is
// not a child in a hierarchy, and can be the RootProvider.
else
{
return this;
}
}
}
' Implement the ParentProvider property.
Public Overrides Property ParentProvider() As SiteMapProvider
Get
Return parentSiteMapProvider
End Get
Set(ByVal value As SiteMapProvider)
parentSiteMapProvider = Value
End Set
End Property
' Implement the RootProvider property.
Public Overrides ReadOnly Property RootProvider() As SiteMapProvider
Get
' If the current instance belongs to a provider hierarchy, it
' cannot be the RootProvider. Rely on the ParentProvider.
If Not (Me.ParentProvider Is Nothing) Then
Return ParentProvider.RootProvider
' If the current instance does not have a ParentProvider, it is
' not a child in a hierarchy, and can be the RootProvider.
Else
Return Me
End If
End Get
End Property
注釈
クラスを SiteMapProvider 実装するすべてのクラスは、サイト マップ プロバイダー階層の概念をサポートできます。 プロバイダー間の階層関係は、プロバイダー自体によってコレクションの SiteMapProviderCollection スコープ外に保持されます。 機能プロバイダー階層の例については、以下を参照してください XmlSiteMapProvider。