SiteMapProvider.RootProvider SiteMapProvider.RootProvider SiteMapProvider.RootProvider SiteMapProvider.RootProvider Property

定義

現在のプロバイダー階層のルート SiteMapProvider オブジェクトを取得します。Gets the root SiteMapProvider object in the current provider hierarchy.

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

プロパティ値

現在のプロバイダーが属するプロバイダー階層の最上位サイト マップ プロバイダーである SiteMapProviderAn SiteMapProvider that is the top-level site map provider in the provider hierarchy that the current provider belongs to.

例外

現在のサイト マップ プロバイダーへの循環参照があります。There is a circular reference to the current site map provider.

次のコード例は、抽象RootProvider SiteMapProviderクラスを実装するクラスにプロパティを実装する方法を示しています。The following code example demonstrates how to implement the RootProvider property in a class that implements the abstract SiteMapProvider class. SimpleTextSiteMapProvider 、単純なロジックを使用して、現在のプロバイダーがプロバイダー階層の一部であるかどうかを判断します。The SimpleTextSiteMapProvider uses simple logic to determine whether the current provider is part of a provider hierarchy. プロバイダーが階層の一部である場合は、親プロバイダー RootProviderのプロパティが専用として使用されます。If the provider is part of a hierarchy, it uses the RootProvider property for the parent provider as its own. プロバイダーが階層の一部でない場合、プロバイダーは独自のルートプロバイダーです。If the provider is not part of a hierarchy, the provider is its own root provider.

このコード例は、 SiteMapProviderクラスに対して提供される大規模な例の一部です。This code example is part of a larger example provided for the SiteMapProvider class.

// 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クラスを実装するすべてのクラスは、サイトマッププロバイダー階層の概念をサポートできます。All classes that implement the SiteMapProvider class can support the concept of a site map provider hierarchy. プロバイダー間の階層リレーションシップは、プロバイダー自体によってSiteMapProviderCollectionコレクションの範囲外に保持されます。Any hierarchical relationships between providers are maintained outside the scope of a SiteMapProviderCollection collection by the providers themselves. 機能プロバイダー階層の例については、 XmlSiteMapProvider「」を参照してください。For an example of a functional provider hierarchy, see XmlSiteMapProvider.

適用対象

こちらもご覧ください