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,表示当前提供程序所属的提供程序层次结构中的顶级站点地图提供程序。

例外

存在一个对当前站点地图提供程序的循环引用。

示例

下面的代码示例演示如何在实现抽象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

适用于

另请参阅