Udostępnij za pośrednictwem


StaticSiteMapProvider Klasa

Definicja

Służy jako częściowa implementacja klasy abstrakcyjnej SiteMapProvider i służy jako klasa bazowa dla XmlSiteMapProvider klasy, która jest domyślnym dostawcą mapy lokacji w 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
Dziedziczenie
StaticSiteMapProvider
Pochodne

Przykłady

Poniższy przykład kodu pokazuje, jak rozszerzyć klasę StaticSiteMapProvider tak, aby korzystała z programu Microsoft Access jako dostawcy mapy witryny. Klasa AccessSiteMapProvider jest dostawcą mapy lokacji, który obsługuje tylko prostą, pojedynczą hierarchię głęboką. Tabela przechowywana przez dane mapy witryny ma następującą strukturę:

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

Klasa AccessSiteMapProvider pochodzi z StaticSiteMapProvider klasy i pobiera informacje z bazy danych programu Microsoft Access przy użyciu podstawowych zapytań SQL i OleDbCommand obiektów i OleDbDataReader .

#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 Na koniec parametr jest skonfigurowany jako dostawca domyślny w następującym pliku 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>  

Uwagi

Klasa StaticSiteMapProvider jest częściową implementacją klasy abstrakcyjnej SiteMapProvider i dostarcza dwie dodatkowe metody: AddNode i RemoveNode, a także metody abstrakcyjne BuildSiteMap i chronione Clear .

Klasa StaticSiteMapProvider obsługuje pisanie dostawcy mapy witryny (na przykład XmlSiteMapProvider), który tłumaczy mapę lokacji przechowywaną w magazynie trwałym na taki, który jest przechowywany w pamięci. Klasa StaticSiteMapProvider udostępnia podstawowe implementacje do przechowywania i pobierania SiteMapNode obiektów.

Klasy SiteMapProvider i StaticSiteMapProvider obsługują koncepcję hierarchii dostawcy mapy lokacji, w której dostawca mapy lokacji może mieć hierarchiczną relację z innymi dostawcami mapy lokacji. Ten wzorzec jest implementowany za pomocą RootProvider właściwości i ParentProvider .

Klasa StaticSiteMapProvider przechowuje swoje SiteMapNode obiekty w tabelach skrótów i wewnętrznie używa SiteMapNode.Url właściwości stron reprezentowanych przez węzły mapy witryny jako klucze. (Jeśli węzeł mapy witryny nie określa adresu URL, jest śledzony przy użyciu automatycznie wygenerowanego unikatowego klucza). W związku z tym nie można mieć węzłów mapy witryny, w których węzeł mapy witryny o tym samym adresie URL jest używany więcej niż raz. Na przykład próba załadowania węzła mapy witryny pokazanego w poniższym przykładzie kodu z XmlSiteMapProvider klasą, która jest domyślnym dostawcą mapy witryny ASP.NET lub dostawcą mapy witryny pochodzącym z StaticSiteMapProvider klasy nie będzie działać, ponieważ strona AboutUs.aspx jest używana więcej niż raz.

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

Jeśli rozszerzasz klasę StaticSiteMapProvider , trzy najważniejsze metody to GetRootNodeCoremetody , Initializei BuildSiteMap . Metody Clear i FindSiteMapNode mają domyślne implementacje, które są wystarczające dla większości niestandardowych implementacji dostawcy mapy lokacji.

Metoda jest wywoływana Initialize w celu zainicjowania pochodnych dostawców map lokacji, w tym wszystkich zasobów wymaganych do załadowania danych mapy lokacji, ale próbuje skompilować węzeł mapy lokacji w pamięci. Jeśli klasa pochodna używa plików do przechowywania danych mapy witryny, w tym miejscu można wykonać dowolną inicjację pliku. Jeśli węzeł mapy lokacji używa innego typu magazynu danych, takiego jak relacyjna baza danych, inicjowanie połączenia może zostać wykonane tutaj. Dodatkowe atrybuty, takie jak nazwy plików lub parametry połączenia umieszczone w elemecie dostawcy mapy lokacji w konfiguracji, są przetwarzane przez system konfiguracji ASP.NET i przekazywane do Initialize metody z parametrem attributes .

Metoda BuildSiteMap musi zostać zastąpiona przez wszystkie klasy, które pochodzą z StaticSiteMapProvider klasy i jest wywoływana w celu załadowania węzła mapy lokacji z magazynu trwałego i przekonwertowania jej na reprezentację wewnętrzną. Metoda BuildSiteMap jest wywoływana wewnętrznie w wielu domyślnych implementacjach składowych StaticSiteMapProvider klas i XmlSiteMapProvider . Jeśli zaimplementujesz własnego dostawcę mapy lokacji, upewnij się, że przetwarzanie danych mapy lokacji odbywa się raz, a kolejne wywołania BuildSiteMap metody są zwracane natychmiast, jeśli informacje o mapie witryny zostały już załadowane. Podczas implementowania BuildSiteMap metody upewnij się, że jest ona bezpieczna wątkiem, ponieważ wiele współbieżnych żądań stron może spowodować pośrednio wiele wywołań w celu załadowania informacji o mapie witryny. Infrastruktura mapy lokacji obsługuje wyświetlanie informacji o mapie witryny na podstawie roli użytkownika. Roles W zależności od właściwości obsługiwanej przez poszczególne SiteMapNode obiekty może istnieć inna struktura nawigacji dla różnych użytkowników. Domyślne implementacje elementów członkowskich StaticSiteMapProvider pobierania węzła mapy witryny klasy wykonują automatyczne przycinanie zabezpieczeń przez wywołanie IsAccessibleToUser metody .

Clear Metody AddNodei RemoveNode manipulują wewnętrznymi kolekcjami, które są używane do śledzenia węzłów mapy witryny w sposób bezpieczny wątkowo.

Uwagi dotyczące implementowania

Po dziedziczeniu StaticSiteMapProvider z klasy należy zastąpić następujący element członkowski: BuildSiteMap().

Konstruktory

StaticSiteMapProvider()

Inicjuje nowe wystąpienie klasy StaticSiteMapProvider.

Właściwości

CurrentNode

SiteMapNode Pobiera obiekt reprezentujący aktualnie żądaną stronę.

(Odziedziczone po SiteMapProvider)
Description

Pobiera krótki, przyjazny opis odpowiedni do wyświetlania w narzędziach administracyjnych lub innych interfejsach użytkownika (UI).

(Odziedziczone po ProviderBase)
EnableLocalization

Pobiera lub ustawia wartość logiczną wskazującą, czy zwracane są zlokalizowane wartości atrybutów SiteMapNode .

(Odziedziczone po SiteMapProvider)
Name

Pobiera przyjazną nazwę używaną do odwoływania się do dostawcy podczas konfiguracji.

(Odziedziczone po ProviderBase)
ParentProvider

Pobiera lub ustawia obiekt nadrzędny SiteMapProvider bieżącego dostawcy.

(Odziedziczone po SiteMapProvider)
ResourceKey

Pobierz lub ustawia klucz zasobu używany do lokalizowania SiteMapNode atrybutów.

(Odziedziczone po SiteMapProvider)
RootNode

Pobiera obiekt główny SiteMapNode danych mapy lokacji reprezentowanych przez bieżącego dostawcę.

(Odziedziczone po SiteMapProvider)
RootProvider

Pobiera obiekt główny SiteMapProvider w bieżącej hierarchii dostawcy.

(Odziedziczone po SiteMapProvider)
SecurityTrimmingEnabled

Pobiera wartość logiczną wskazującą, czy dostawca mapy lokacji filtruje węzły mapy lokacji na podstawie roli użytkownika.

(Odziedziczone po SiteMapProvider)

Metody

AddNode(SiteMapNode, SiteMapNode)

Dodaje obiekt SiteMapNode do kolekcji, które są obsługiwane przez dostawcę mapy witryny i ustanawia relację nadrzędną/podrzędną między SiteMapNode obiektami.

AddNode(SiteMapNode)

SiteMapNode Dodaje obiekt do kolekcji węzłów, która jest utrzymywana przez dostawcę mapy witryny.

(Odziedziczone po SiteMapProvider)
BuildSiteMap()

W przypadku zastąpienia w klasie pochodnej ładuje informacje mapy lokacji z magazynu trwałego i tworzy je w pamięci.

Clear()

Usuwa wszystkie elementy w kolekcjach węzłów podrzędnych i nadrzędnych węzłów mapy lokacji, które śledzą StaticSiteMapProvider w ramach jego stanu.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
FindSiteMapNode(HttpContext)

SiteMapNode Pobiera obiekt reprezentujący aktualnie żądaną stronę przy użyciu określonego HttpContext obiektu.

(Odziedziczone po SiteMapProvider)
FindSiteMapNode(String)

SiteMapNode Pobiera obiekt reprezentujący stronę pod określonym adresem URL.

FindSiteMapNodeFromKey(String)

SiteMapNode Pobiera obiekt na podstawie określonego klucza.

GetChildNodes(SiteMapNode)

Pobiera węzły mapy lokacji podrzędnej określonego SiteMapNode obiektu.

GetCurrentNodeAndHintAncestorNodes(Int32)

Udostępnia zoptymalizowaną metodę wyszukiwania dla dostawców mapy lokacji podczas pobierania węzła dla aktualnie żądanej strony i pobierania węzłów mapy witryny nadrzędnej i węzłów mapy lokacji programu ancestor dla bieżącej strony.

(Odziedziczone po SiteMapProvider)
GetCurrentNodeAndHintNeighborhoodNodes(Int32, Int32)

Udostępnia zoptymalizowaną metodę wyszukiwania dla dostawców mapy lokacji podczas pobierania węzła dla aktualnie żądanej strony i pobierania węzłów mapy lokacji w pobliżu bieżącego węzła.

(Odziedziczone po SiteMapProvider)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetParentNode(SiteMapNode)

Pobiera węzeł mapy lokacji nadrzędnej określonego SiteMapNode obiektu.

GetParentNodeRelativeToCurrentNodeAndHintDownFromParent(Int32, Int32)

Udostępnia zoptymalizowaną metodę wyszukiwania dla dostawców mapy lokacji podczas pobierania węzła ancestor dla aktualnie żądanej strony i pobierania węzłów podrzędnych dla obiektu ancestor.

(Odziedziczone po SiteMapProvider)
GetParentNodeRelativeToNodeAndHintDownFromParent(SiteMapNode, Int32, Int32)

Udostępnia zoptymalizowaną metodę wyszukiwania dla dostawców map lokacji podczas pobierania węzła podrzędnego dla określonego SiteMapNode obiektu i pobierania jego węzłów podrzędnych.

(Odziedziczone po SiteMapProvider)
GetRootNodeCore()

Po zastąpieniu w klasie pochodnej pobiera węzeł główny wszystkich węzłów, które są obecnie zarządzane przez bieżącego dostawcę.

(Odziedziczone po SiteMapProvider)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
HintAncestorNodes(SiteMapNode, Int32)

Zapewnia metodę, którą dostawcy mapy lokacji mogą zastąpić w celu przeprowadzenia zoptymalizowanego pobierania jednego lub kilku poziomów węzłów nadrzędnych i węzłów nadrzędnych względem określonego SiteMapNode obiektu.

(Odziedziczone po SiteMapProvider)
HintNeighborhoodNodes(SiteMapNode, Int32, Int32)

Zapewnia metodę, którą dostawcy mapy lokacji mogą zastąpić w celu przeprowadzenia zoptymalizowanego pobierania węzłów znajdujących się w pobliżu określonego węzła.

(Odziedziczone po SiteMapProvider)
Initialize(String, NameValueCollection)

Inicjuje implementację SiteMapProvider , w tym wszelkie zasoby potrzebne do załadowania danych mapy lokacji z magazynu trwałego.

(Odziedziczone po SiteMapProvider)
IsAccessibleToUser(HttpContext, SiteMapNode)

Pobiera wartość logiczną wskazującą, czy określony SiteMapNode obiekt może być wyświetlany przez użytkownika w określonym kontekście.

(Odziedziczone po SiteMapProvider)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
RemoveNode(SiteMapNode)

Usuwa określony SiteMapNode obiekt ze wszystkich kolekcji węzłów mapy witryny śledzonych przez dostawcę mapy lokacji.

ResolveSiteMapNode(HttpContext)

SiteMapResolve Zgłasza zdarzenie.

(Odziedziczone po SiteMapProvider)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Zdarzenia

SiteMapResolve

Występuje, gdy właściwość jest wywoływana CurrentNode .

(Odziedziczone po SiteMapProvider)

Dotyczy

Zobacz też