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


StaticSiteMapProvider Класс

Определение

Служит частичной реализацией абстрактного SiteMapProvider класса и служит базовым классом для XmlSiteMapProvider класса, который является поставщиком карты сайта по умолчанию в ASP.NET.

public ref class StaticSiteMapProvider abstract : System::Web::SiteMapProvider
public abstract class StaticSiteMapProvider : System.Web.SiteMapProvider
type StaticSiteMapProvider = class
    inherit SiteMapProvider
Public MustInherit Class StaticSiteMapProvider
Inherits SiteMapProvider
Наследование
StaticSiteMapProvider
Производный

Примеры

В следующем примере кода показано, как расширить StaticSiteMapProvider класс для использования Microsoft Access в качестве поставщика карты сайта. Класс AccessSiteMapProvider — это поставщик карты сайта, который поддерживает только простую одноуровневую глубокую иерархию. Таблица, в которую хранятся данные карты сайта, имеет следующую структуру:

NODEID URL            NAME       PARENTNODEID
 ---------------------------------------------
 1      default.aspx   Default    <NULL>
 2      catalog.aspx   Catalog    1
 3      aboutus.aspx   Contact Us 1
...

Класс AccessSiteMapProvider является производным от StaticSiteMapProvider класса и извлекает сведения из базы данных Microsoft Access с помощью базовых запросов SQL и OleDbCommandOleDbDataReader объектов.

#using <System.Data.dll>
#using <System.Transactions.dll>
#using <System.EnterpriseServices.dll>
#using <System.dll>
#using <System.Web.dll>
#using <System.Configuration.dll>

using namespace System;
using namespace System::Collections;
using namespace System::Collections::Specialized;
using namespace System::Configuration;
using namespace System::Data;
using namespace System::Data::OleDb;
using namespace System::Security::Permissions;
using namespace System::Web;

/// An extremely simple AccessSiteMapProvider that only supports a
/// site map node hierarchy 1 level deep.

[AspNetHostingPermission(SecurityAction::Demand,Level=AspNetHostingPermissionLevel::Minimal)]
public ref class AccessSiteMapProvider: public StaticSiteMapProvider
{
private:
   SiteMapNode ^ rootNode;
   OleDbConnection^ accessConnection;

   // This string is case sensitive.
   String^ AccessConnectionStringName;

public:
   // Implement a default constructor.
   AccessSiteMapProvider()
   {
      initialized = false;
      AccessConnectionStringName = "accessSiteMapConnectionString";
   }


private:

   // Some basic state to help track the initialization state of the provider.
   bool initialized;

public:

   property bool IsInitialized 
   {
      virtual bool get()
      {
         return initialized;
      }

   }

   property SiteMapNode ^ RootNode 
   {

      // Return the root node of the current site map.
      virtual SiteMapNode ^ get() override
      {
         SiteMapNode ^ temp = nullptr;
         temp = BuildSiteMap();
         return temp;
      }

   }

protected:

   virtual SiteMapNode ^ GetRootNodeCore() override
   {
      return RootNode;
   }


public:

   // Initialize is used to initialize the properties and any state that the
   // AccessProvider holds, but is not used to build the site map.
   // The site map is built when the BuildSiteMap method is called.
   virtual void Initialize( String^ name, NameValueCollection^ attributes ) override
   {
      if ( IsInitialized )
            return;

      StaticSiteMapProvider::Initialize( name, attributes );
      
      // Create and test the connection to the Microsoft Access database.
      // Retrieve the Value of the Access connection string from the
      // attributes NameValueCollection.
      String^ connectionString = attributes[ AccessConnectionStringName ];
      if ( nullptr == connectionString || connectionString->Length == 0 )
            throw gcnew Exception( "The connection string was not found." );
      else
            accessConnection = gcnew OleDbConnection( connectionString );

      initialized = true;
   }


protected:

   ///
   /// SiteMapProvider and StaticSiteMapProvider methods that this derived class must override.
   ///
   // Clean up any collections or other state that an instance of this may hold.
   virtual void Clear() override
   {
      System::Threading::Monitor::Enter( this );
      try
      {
         rootNode = nullptr;
         StaticSiteMapProvider::Clear();
      }
      finally
      {
         System::Threading::Monitor::Exit( this );
      }

   }


public:

   // Build an in-memory representation from persistent
   // storage, and return the root node of the site map.
   virtual SiteMapNode ^ BuildSiteMap() override
   {
      // Since the SiteMap class is static, make sure that it is
      // not modified while the site map is built.
      System::Threading::Monitor::Enter( this );
      try
      {
         
         // If there is no initialization, this method is being
         // called out of order.
         if (  !IsInitialized )
         {
            throw gcnew Exception( "BuildSiteMap called incorrectly." );
         }
         
         // If there is no root node, then there is no site map.
         if ( nullptr == rootNode )
         {
            
            // Start with a clean slate
            Clear();
            
            // Select the root node of the site map from Microsoft Access.
            int rootNodeId = -1;
            if ( accessConnection->State == ConnectionState::Closed )
               accessConnection->Open();
            
            OleDbCommand^ rootNodeCommand = gcnew OleDbCommand
               ("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid IS NULL", accessConnection);
            OleDbDataReader^ rootNodeReader = rootNodeCommand->ExecuteReader();
            if ( rootNodeReader->HasRows )
            {
               rootNodeReader->Read();
               rootNodeId = rootNodeReader->GetInt32( 0 );
               
               // Create a SiteMapNode that references the current StaticSiteMapProvider.
               rootNode = gcnew SiteMapNode(this, rootNodeId.ToString(), 
                  rootNodeReader->GetString( 1 ),rootNodeReader->GetString( 2 ));
            }
            else
               return nullptr;
            rootNodeReader->Close();
            
            // Select the child nodes of the root node.
            OleDbCommand^ childNodesCommand = gcnew OleDbCommand
               ("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid = ?", accessConnection);
            OleDbParameter^ rootParam = gcnew OleDbParameter( "parentid", OleDbType::Integer);
            rootParam->Value = rootNodeId;
            childNodesCommand->Parameters->Add( rootParam );
            OleDbDataReader^ childNodesReader = childNodesCommand->ExecuteReader();
            if ( childNodesReader->HasRows )
            {
               SiteMapNode ^ childNode = nullptr;
               while ( childNodesReader->Read() )
               {
                  childNode = gcnew SiteMapNode( this, 
                      System::Convert::ToString(childNodesReader->GetInt32( 0 )),
                     childNodesReader->GetString( 1 ),
                     childNodesReader->GetString( 2 ) 
                  );
                  // Use the SiteMapNode AddNode method to add
                  // the SiteMapNode to the ChildNodes collection.
                  AddNode( childNode, rootNode );
               }
            }
            childNodesReader->Close();
            accessConnection->Close();
         }
         return rootNode;
      }
      finally
      {
         System::Threading::Monitor::Exit( this );
      }

   }

};
namespace Samples.AspNet.CS.Controls {

    using System;
    using System.Collections;
    using System.Collections.Specialized;
    using System.Data;
    using System.Data.OleDb;
    using System.Security.Permissions;
    using System.Web;

    /// An extremely simple AccessSiteMapProvider that only supports a
    /// site map node hierarchy 1 level deep.
    [AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.Minimal)]
    public class AccessSiteMapProvider : StaticSiteMapProvider
    {
        private SiteMapNode rootNode =  null;
        private OleDbConnection accessConnection = null;

        // This string is case sensitive.
        private string AccessConnectionStringName = "accessSiteMapConnectionString";

        // Implement a default constructor.
        public AccessSiteMapProvider () { }

        // Some basic state to help track the initialization state of the provider.
        private bool initialized = false;
        public virtual bool IsInitialized {
            get {
                return initialized;
            }
        }
        // Return the root node of the current site map.
        public override SiteMapNode RootNode {
            get {
                SiteMapNode temp = null;
                temp = BuildSiteMap();
                return temp;
            }
        }
        protected override SiteMapNode GetRootNodeCore() {
            return RootNode;
        }
        // Initialize is used to initialize the properties and any state that the
        // AccessProvider holds, but is not used to build the site map.
        // The site map is built when the BuildSiteMap method is called.
        public override void Initialize(string name, NameValueCollection attributes) {
            if (IsInitialized)
                return;

            base.Initialize(name, attributes);

            // Create and test the connection to the Microsoft Access database.

            // Retrieve the Value of the Access connection string from the
            // attributes NameValueCollection.
            string connectionString = attributes[AccessConnectionStringName];

            if (null == connectionString || connectionString.Length == 0)
                throw new Exception ("The connection string was not found.");
            else
                accessConnection = new OleDbConnection(connectionString);

            initialized = true;
        }

        ///
        /// SiteMapProvider and StaticSiteMapProvider methods that this derived class must override.
        ///
        // Clean up any collections or other state that an instance of this may hold.
        protected override void Clear() {
            lock (this) {
                rootNode = null;
                base.Clear();
            }
        }

        // Build an in-memory representation from persistent
        // storage, and return the root node of the site map.
        public override SiteMapNode BuildSiteMap() {

            // Since the SiteMap class is static, make sure that it is
            // not modified while the site map is built.
            lock(this) {

                // If there is no initialization, this method is being
                // called out of order.
                if (!IsInitialized) {
                    throw new Exception("BuildSiteMap called incorrectly.");
                }

                // If there is no root node, then there is no site map.
                if (null == rootNode) {
                    // Start with a clean slate
                    Clear();

                    // Select the root node of the site map from Microsoft Access.
                    int rootNodeId = -1;

                    if (accessConnection.State == ConnectionState.Closed)
                        accessConnection.Open();
                    OleDbCommand rootNodeCommand =
                        new OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid IS NULL",
                                         accessConnection);
                    OleDbDataReader rootNodeReader = rootNodeCommand.ExecuteReader();

                    if(rootNodeReader.HasRows) {
                        rootNodeReader.Read();
                        rootNodeId = rootNodeReader.GetInt32(0);
                        // Create a SiteMapNode that references the current StaticSiteMapProvider.
                        rootNode   = new SiteMapNode(this,
                                                     rootNodeId.ToString(),
                                                     rootNodeReader.GetString(1),
                                                     rootNodeReader.GetString(2));
                    }
                    else
                    {
                        return null;
                    }

                    rootNodeReader.Close();
                    // Select the child nodes of the root node.
                    OleDbCommand childNodesCommand =
                        new OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid = ?",
                                         accessConnection);
                    OleDbParameter rootParam = new OleDbParameter("parentid", OleDbType.Integer);
                    rootParam.Value = rootNodeId;
                    childNodesCommand.Parameters.Add(rootParam);

                    OleDbDataReader childNodesReader = childNodesCommand.ExecuteReader();

                    if (childNodesReader.HasRows) {

                        SiteMapNode childNode = null;
                        while(childNodesReader.Read()) {
                            childNode =  new SiteMapNode(this,
                                                         childNodesReader.GetInt32(0).ToString(),
                                                         childNodesReader.GetString(1),
                                                         childNodesReader.GetString(2));

                            // Use the SiteMapNode AddNode method to add
                            // the SiteMapNode to the ChildNodes collection.
                            AddNode(childNode, rootNode);
                        }
                    }

                    childNodesReader.Close();
                    accessConnection.Close();
                }
                return rootNode;
            }
        }
    }
}
Imports System.Collections
Imports System.Collections.Specialized
Imports System.Data
Imports System.Data.OleDb
Imports System.Security.Permissions
Imports System.Web

Namespace Samples.AspNet.VB.Controls
 
    ' An extremely simple AccessSiteMapProvider that only supports a
    ' site map node hierarchy one level deep.
    <AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Minimal)> _
    Public Class AccessSiteMapProvider
        Inherits StaticSiteMapProvider

        Private aRootNode As SiteMapNode = Nothing
        Private accessConnection As OleDbConnection = Nothing

        ' This string is case sensitive.
        Private AccessConnectionStringName As String = "accessSiteMapConnectionString"

        ' Implement a default constructor.
        Public Sub New()
        End Sub

        ' Some basic state to help track the initialization state of the provider.
        Private initialized As Boolean = False

        Public Overridable ReadOnly Property IsInitialized() As Boolean
            Get
                Return initialized
            End Get
        End Property

        ' Return the root node of the current site map.
        Public Overrides ReadOnly Property RootNode() As SiteMapNode
            Get
                Return BuildSiteMap()
            End Get
        End Property

        Protected Overrides Function GetRootNodeCore() As SiteMapNode
            Return RootNode
        End Function

        ' Initialize is used to initialize the properties and any state that the
        ' AccessProvider holds, but is not used to build the site map.
        ' The site map is built when the BuildSiteMap method is called.
        Public Overrides Sub Initialize(ByVal name As String, ByVal attributes As NameValueCollection)
            If IsInitialized Then
                Return
            End If
            MyBase.Initialize(name, attributes)

            ' Create and test the connection to the Microsoft Access database.
            ' Retrieve the Value of the Access connection string from the
            ' attributes NameValueCollection.
            Dim connectionString As String = attributes(AccessConnectionStringName)

            If Nothing = connectionString OrElse connectionString.Length = 0 Then
                Throw New Exception("The connection string was not found.")
            Else
                accessConnection = New OleDbConnection(connectionString)
            End If
            initialized = True
        End Sub

        ' SiteMapProvider and StaticSiteMapProvider methods that this derived class must override.
        '
        ' Clean up any collections or other state that an instance of this may hold.
        Protected Overrides Sub Clear()
            SyncLock Me
                aRootNode = Nothing
                MyBase.Clear()
            End SyncLock
        End Sub

        ' Build an in-memory representation from persistent
        ' storage, and return the root node of the site map.
        Public Overrides Function BuildSiteMap() As SiteMapNode

            ' Since the SiteMap class is static, make sure that it is
            ' not modified while the site map is built.
            SyncLock Me

                ' If there is no initialization, this method is being
                ' called out of order.
                If Not IsInitialized Then
                    Throw New Exception("BuildSiteMap called incorrectly.")
                End If

                ' If there is no root node, then there is no site map.
                If aRootNode Is Nothing Then
                    ' Start with a clean slate
                    Clear()

                    ' Select the root node of the site map from Microsoft Access.
                    Dim rootNodeId As Integer = -1

                    If accessConnection.State = ConnectionState.Closed Then
                        accessConnection.Open()
                    End If
                    Dim rootNodeCommand As New OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid IS NULL", accessConnection)
                    Dim rootNodeReader As OleDbDataReader = rootNodeCommand.ExecuteReader()

                    If rootNodeReader.HasRows Then
                        rootNodeReader.Read()
                        rootNodeId = rootNodeReader.GetInt32(0)
                        ' Create a SiteMapNode that references the current StaticSiteMapProvider.
                        aRootNode = New SiteMapNode(Me, rootNodeId.ToString(), rootNodeReader.GetString(1), rootNodeReader.GetString(2))
                    Else
                        Return Nothing
                    End If
                    rootNodeReader.Close()
                    ' Select the child nodes of the root node.
                    Dim childNodesCommand As New OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid = ?", accessConnection)
                    Dim rootParam As New OleDbParameter("parentid", OleDbType.Integer)
                    rootParam.Value = rootNodeId
                    childNodesCommand.Parameters.Add(rootParam)

                    Dim childNodesReader As OleDbDataReader = childNodesCommand.ExecuteReader()

                    If childNodesReader.HasRows Then

                        Dim childNode As SiteMapNode = Nothing
                        While childNodesReader.Read()
                            childNode = New SiteMapNode(Me, _
                            childNodesReader.GetInt32(0).ToString(), _
                            childNodesReader.GetString(1), _
                            childNodesReader.GetString(2))

                            ' Use the SiteMapNode AddNode method to add
                            ' the SiteMapNode to the ChildNodes collection.
                            AddNode(childNode, aRootNode)
                        End While
                    End If

                    childNodesReader.Close()
                    accessConnection.Close()
                End If
                Return aRootNode
            End SyncLock

        End Function 'BuildSiteMap

    End Class

End Namespace

Наконец, поставщик AccessSiteMapProvider по умолчанию настраивается в следующем Web.config файле.

<configuration>
  <system.web>
    <siteMap defaultProvider="AccessSiteMapProvider">
     <providers>
       <add
         name="AccessSiteMapProvider"
         type="Samples.AspNet.AccessSiteMapProvider,Samples.AspNet "
         accessSiteMapConnectionString="PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=sitemap.mdb "/>
     </providers>
    </siteMap>
  </system.web>
</configuration>

Комментарии

Класс StaticSiteMapProvider является частичной реализацией абстрактного класса и предоставляет два дополнительных метода: AddNode и RemoveNode, а также абстрактные SiteMapProviderBuildSiteMap и защищенные Clear методы.

Класс StaticSiteMapProvider поддерживает запись поставщика карты сайта (например, объект XmlSiteMapProvider), который преобразует карту сайта, хранящуюся в постоянном хранилище, в ту, которая хранится в памяти. Класс StaticSiteMapProvider предоставляет базовые реализации для хранения и извлечения SiteMapNode объектов.

StaticSiteMapProvider Классы SiteMapProvider поддерживают концепцию иерархии поставщика карты сайта, где поставщик карты сайта может иметь иерархическую связь с другими поставщиками карт сайта. Этот шаблон реализуется с помощью RootProvider свойств и ParentProvider свойств.

Класс StaticSiteMapProvider хранит свои SiteMapNode объекты в хэш-таблицах и внутренне использует SiteMapNode.Url свойство страниц, представленных узлами карты сайта, в качестве ключей. (Если узел карты сайта не указывает URL-адрес, он отслеживается с помощью автоматически созданного уникального ключа.) В результате у вас не может быть узлов карты сайта, в которых узел карты сайта с тем же URL-адресом используется несколько раз. Например, попытка загрузить узел карты сайта, показанный в следующем примере кода с XmlSiteMapProvider классом, который является поставщиком карты сайта по умолчанию ASP.NET или любым поставщиком карты сайта, производным от StaticSiteMapProvider класса, не будет работать, так как страница AboutUs.aspx используется несколько раз.

<sitemap>
  <sitemapnode title="Home" description="Home" url="default.aspx" >
    <sitemapnode title="Catalog" description="Our catalog" url="catalog.aspx"/>
    <sitemapnode title="About Us" description="All about our company" url="aboutus.aspx"/>
    <sitemapnode title="Driving Directions" description="Directions to our store" url="aboutus.aspx"/>
  </sitemapnode>
</sitemap>

Если вы расширяете StaticSiteMapProvider класс, то три наиболее важных метода — GetRootNodeCoreInitializeэто методы и BuildSiteMap методы. FindSiteMapNode Методы Clear имеют реализации по умолчанию, которые достаточно для большинства пользовательских реализаций поставщика карт сайта.

Метод Initialize вызывается для инициализации поставщиков производных карт сайта, включая все ресурсы, необходимые для загрузки данных карты сайта, но он пытается создать узел карты сайта в памяти. Если производный класс использует файлы для хранения данных карты сайта, можно выполнить инициализацию файлов. Если узел карты сайта использует другой тип хранилища данных, например реляционную базу данных, инициализацию подключения можно выполнить здесь. Дополнительные атрибуты, такие как имена файлов или строки подключения, размещенные на элементе поставщика карты сайта в конфигурации, обрабатываются системой конфигурации ASP.NET и передаются методу Initialize с параметром attributes .

Метод BuildSiteMap должен быть переопределен всеми классами, производными от StaticSiteMapProvider класса, и вызывается для загрузки узла карты сайта из постоянного хранилища и преобразования его в внутреннее представление. Метод BuildSiteMap вызывается внутри многих реализаций StaticSiteMapProvider элементов по умолчанию и XmlSiteMapProvider классов. Если вы реализуете собственный поставщик карты сайта, убедитесь, что обработка данных карты сайта происходит один раз и последующие вызовы BuildSiteMap метода немедленно возвращаются, если данные карты сайта уже загружены. При реализации BuildSiteMap метода убедитесь, что он является потокобезопасной, так как несколько одновременных запросов страниц могут привести к косвенному вызову для загрузки сведений карты сайта. Инфраструктура карты сайта поддерживает отображение сведений карты сайта на основе роли пользователя. Roles В зависимости от свойства, поддерживаемого отдельными SiteMapNode объектами, для разных пользователей может существовать другая структура навигации. Реализации узла карты сайта по умолчанию выполняют извлечение элементов StaticSiteMapProvider класса безопасности автоматически путем вызова IsAccessibleToUser метода.

Clear Методы AddNodeи RemoveNode методы управляют внутренними коллекциями, которые используются для отслеживания узлов карты сайта в потокобезопасном режиме.

Примечания для тех, кто реализует этот метод

При наследовании от StaticSiteMapProvider класса необходимо переопределить следующий член: BuildSiteMap()

Конструкторы

Имя Описание
StaticSiteMapProvider()

Инициализирует новый экземпляр класса StaticSiteMapProvider.

Свойства

Имя Описание
CurrentNode

SiteMapNode Возвращает объект, представляющий запрошенную в данный момент страницу.

(Унаследовано от SiteMapProvider)
Description

Получает краткое понятное описание, подходящее для отображения в средствах администрирования или других пользовательских интерфейсах (UIs).

(Унаследовано от ProviderBase)
EnableLocalization

Возвращает или задает логическое значение, указывающее, возвращаются ли локализованные значения атрибутов SiteMapNode .

(Унаследовано от SiteMapProvider)
Name

Возвращает понятное имя, используемое для ссылки на поставщика во время настройки.

(Унаследовано от ProviderBase)
ParentProvider

Возвращает или задает родительский SiteMapProvider объект текущего поставщика.

(Унаследовано от SiteMapProvider)
ResourceKey

Получение или установка ключа ресурса, используемого для локализации SiteMapNode атрибутов.

(Унаследовано от SiteMapProvider)
RootNode

Возвращает корневой SiteMapNode объект данных карты сайта, которые представляет текущий поставщик.

(Унаследовано от SiteMapProvider)
RootProvider

Возвращает корневой SiteMapProvider объект в текущей иерархии поставщика.

(Унаследовано от SiteMapProvider)
SecurityTrimmingEnabled

Возвращает логическое значение, указывающее, фильтрует ли поставщик карты сайта узлы карты сайта на основе роли пользователя.

(Унаследовано от SiteMapProvider)

Методы

Имя Описание
AddNode(SiteMapNode, SiteMapNode)

SiteMapNode Добавляет в коллекции, которые поддерживаются поставщиком карты сайта, и устанавливает связь родительского или дочернего между объектамиSiteMapNode.

AddNode(SiteMapNode)

SiteMapNode Добавляет объект в коллекцию узлов, которая поддерживается поставщиком карты сайта.

(Унаследовано от SiteMapProvider)
BuildSiteMap()

При переопределении в производном классе загружает сведения карты сайта из постоянного хранилища и создает его в памяти.

Clear()

Удаляет все элементы в коллекциях дочерних и родительских узлов карты сайта, отслеживаемых StaticSiteMapProvider как часть его состояния.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
FindSiteMapNode(HttpContext)

Извлекает объект, представляющий запрошенную SiteMapNode в данный момент страницу с помощью указанного HttpContext объекта.

(Унаследовано от SiteMapProvider)
FindSiteMapNode(String)

Извлекает SiteMapNode объект, представляющий страницу по указанному URL-адресу.

FindSiteMapNodeFromKey(String)

Извлекает SiteMapNode объект на основе указанного ключа.

GetChildNodes(SiteMapNode)

Извлекает узлы сопоставления дочерних сайтов определенного SiteMapNode объекта.

GetCurrentNodeAndHintAncestorNodes(Int32)

Предоставляет оптимизированный метод подстановки для поставщиков карт сайта при получении узла для запрошенной страницы и получении узлов карты родительского и предка для текущей страницы.

(Унаследовано от SiteMapProvider)
GetCurrentNodeAndHintNeighborhoodNodes(Int32, Int32)

Предоставляет оптимизированный метод поиска для поставщиков карт сайта при получении узла для запрошенной страницы и получении узлов карты сайта в близости от текущего узла.

(Унаследовано от SiteMapProvider)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetParentNode(SiteMapNode)

Извлекает узел карты родительского сайта определенного SiteMapNode объекта.

GetParentNodeRelativeToCurrentNodeAndHintDownFromParent(Int32, Int32)

Предоставляет оптимизированный метод поиска для поставщиков карт сайта при получении узла-предка для запрошенной страницы и получении потомков для предка.

(Унаследовано от SiteMapProvider)
GetParentNodeRelativeToNodeAndHintDownFromParent(SiteMapNode, Int32, Int32)

Предоставляет оптимизированный метод поиска для поставщиков карт сайта при получении узла-предка для указанного SiteMapNode объекта и получении дочерних узлов.

(Унаследовано от SiteMapProvider)
GetRootNodeCore()

При переопределении в производном классе извлекает корневой узел всех узлов, управляемых текущим поставщиком.

(Унаследовано от SiteMapProvider)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
HintAncestorNodes(SiteMapNode, Int32)

Предоставляет метод, который поставщики карты сайта могут переопределить для выполнения оптимизированного извлечения одного или нескольких уровней родительских и предки узлов относительно указанного SiteMapNode объекта.

(Унаследовано от SiteMapProvider)
HintNeighborhoodNodes(SiteMapNode, Int32, Int32)

Предоставляет метод, который поставщики карт сайта могут переопределить для выполнения оптимизированного извлечения узлов, найденных в близком расположении указанного узла.

(Унаследовано от SiteMapProvider)
Initialize(String, NameValueCollection)

Инициализирует реализацию SiteMapProvider , включая все ресурсы, необходимые для загрузки данных карты сайта из постоянного хранилища.

(Унаследовано от SiteMapProvider)
IsAccessibleToUser(HttpContext, SiteMapNode)

Извлекает логическое значение, указывающее, можно ли просматривать указанный SiteMapNode объект пользователем в указанном контексте.

(Унаследовано от SiteMapProvider)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
RemoveNode(SiteMapNode)

Удаляет указанный SiteMapNode объект из всех семейств узлов карты сайта, отслеживаемых поставщиком карты сайта.

ResolveSiteMapNode(HttpContext)

Вызывает событие SiteMapResolve.

(Унаследовано от SiteMapProvider)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

События

Имя Описание
SiteMapResolve

Происходит при вызове CurrentNode свойства.

(Унаследовано от SiteMapProvider)

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

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