Поделиться через


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 поставщик карты сайта верхнего уровня в иерархии поставщиков, к которому принадлежит текущий поставщик.

Исключения

Существует циклическая ссылка на текущий поставщик карты сайта.

Примеры

В следующем примере кода показано, как реализовать свойство в классе, реализующего абстрактный RootProviderSiteMapProvider класс. Использует 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.

Применяется к

См. также раздел