Share via


SiteMapProvider.RootProvider 屬性

定義

取得目前提供者階層架構中的根 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 實作抽象 SiteMapProvider 類的類別中實作 屬性。 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

適用於

另請參閱