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 实现抽象类的类中的属性 SiteMapProviderThe 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.

此代码示例是为类提供的更大示例的一部分 SiteMapProviderThis 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. 有关功能提供程序层次结构的示例,请参阅 XmlSiteMapProviderFor an example of a functional provider hierarchy, see XmlSiteMapProvider.

适用于

另请参阅