SiteMapProvider.RootProvider 속성

정의

현재 공급자 계층 구조의 루트 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

속성 값

SiteMapProvider

현재 공급자가 속하는 공급자 계층 구조에서 최상위 사이트 맵 공급자에 해당하는 SiteMapProvider입니다.An 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.

적용 대상

추가 정보