SiteMapProvider.RootProvider 属性

定义

获取当前提供程序层次结构中的根 SiteMapProvider 对象。

public virtual System.Web.SiteMapProvider RootProvider { get; }

属性值

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;
    }
  }
}

注解

实现该 SiteMapProvider 类的所有类都可以支持站点地图提供程序层次结构的概念。 提供程序之间的任何分层关系在提供程序本身的 SiteMapProviderCollection 集合范围内维护。 有关功能提供程序层次结构的示例,请参阅 XmlSiteMapProvider

适用于

产品 版本
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8

另请参阅