Freigeben über


XmlSiteMapProvider.BuildSiteMap Methode

Definition

Lädt die Siteübersichtsinformationen aus einer XML-Datei und erstellt sie im Arbeitsspeicher.

public:
 override System::Web::SiteMapNode ^ BuildSiteMap();
public override System.Web.SiteMapNode BuildSiteMap ();
override this.BuildSiteMap : unit -> System.Web.SiteMapNode
Public Overrides Function BuildSiteMap () As SiteMapNode

Gibt zurück

SiteMapNode

Gibt den Stamm-SiteMapNode der Navigationsstruktur für die Siteübersicht zurück.

Ausnahmen

Der XmlSiteMapProvider wurde nicht ordnungsgemäß initialisiert.

- oder - Eine siteMapFile wird für einen <siteMapNode> analysiert, der nicht eindeutig ist.

- oder - Die von siteMapFile angegebene Datei hat nicht die Dateinamenerweiterung .sitemap.

- oder - Die von siteMapFile angegebene Datei ist nicht vorhanden.

- oder - Ein im provider eines <siteMapNode> konfigurierter Anbieter gibt einen NULL-Stammknoten zurück.

Die siteMapFile ist angegeben, aber der Pfad liegt außerhalb der aktuellen Verzeichnisstruktur für die Anwendung.

Beim Laden der Konfigurationsdatei ist ein Fehler aufgetreten.

- oder - Das oberste Element der Konfigurationsdatei ist nicht named <siteMap>.

- oder - In der Konfigurationsdatei ist mehr als ein Knoten der obersten Ebene vorhanden.

- oder - Ein untergeordnetes Element von <siteMap> hat einen anderen Namen als <siteMapNode>.

- oder - Für <siteMapNode> wird ein unerwartetes Attribut analysiert.

- oder - Untergeordnete Elemente werden unter einem <siteMapNode> geschachtelt, in dem der provider festgelegt ist.

- oder - Die roles des <siteMapNode> enthalten ungültige Zeichen.

- oder - Eine url wird für einen <siteMapNode> analysiert, der nicht eindeutig ist.

- oder - Ein SiteMapNode mit einem doppelten Wert für Key wurde gefunden.

- oder - Der ResourceKey oder der Title wurde in einem SiteMapNode oder einem für den Knoten in einem expliziten Ressourcenausdruck definierten custom-Attribut angegeben.

- oder - Ein expliziter Ressourcenausdruck wurde entweder auf den Title oder die Description oder auf ein custom-Attribut eines SiteMapNode angewendet, aber die expliziten Informationen waren ungültig.

- oder - Beim Analysieren des Url eines SiteMapNode ist ein Fehler aufgetreten.

In der aktuellen Auflistung der Siteübersichtsanbieter kann kein benannter Anbieter gefunden werden.

Ein <siteMapNode>, der auf eine Siteübersichtsdatei verweist, enthält eine leere Zeichenfolge für die siteMapFile.

Eine siteMapFile eines <siteMapNode> verwendet einen physikalischen Pfad.

- oder - Beim Analysieren des virtuellen Pfads der in der siteMapFile angegebenen Datei ist ein Fehler aufgetreten.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie eine neue Instanz der -Klasse erstellt und initialisiert wird, um eine Siteübersicht aus XmlSiteMapProvider XML-Daten zu erstellen.

<%@ Page Language="c#" %>  
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  
 <SCRIPT runat="server">  
 private void Page_Load(object sender, System.EventArgs e)  
 {  
     // Create an instance of the XmlSiteMapProvider class.  
     XmlSiteMapProvider testXmlProvider = new XmlSiteMapProvider();  
     NameValueCollection providerAttributes = new NameValueCollection(1);  
     providerAttributes.Add("siteMapFile","test.sitemap");  
     // Initialize the provider with a provider name and file name.  
     testXmlProvider.Initialize("testProvider", providerAttributes);  

     // The BuildSiteMap method is implicitly called when the   
     // RootNode property is accessed.  

     // Prints "/myvirtualdirectory/WebForm1.aspx"  
     Response.Write(testXmlProvider.RootNode.Url + "<BR>");  
     // Prints "/myvirtualdirectory/WebForm2.aspx"  
     Response.Write(testXmlProvider.CurrentNode.Url + "<BR>");  
 }  

Im vorangehenden Codebeispiel wird eine XML-Datei verwendet, die sich im virtuellen Stammverzeichnis der ASP.NET befindet. Die Datei hat das folgende Format:

<siteMap>  
     <siteMapNode title="RootNode" description="The root page." url="WebForm1.aspx">  
         <siteMapNode title="CurrentNode" description="Some sub page." url="WebForm2.aspx"/>  
     </siteMapNode>  
 </siteMap>  

Hinweise

Die BuildSiteMap -Methode wird aufgerufen, um die Siteübersicht aus persistenten Speicher zu laden und zu erstellen.

Informationen zum Standardverhalten bei aktivierter Sicherheitsverschneidung finden Sie unter "Hinweise" in IsAccessibleToUser .

Nachdem das Objekt Siteübersichtsdaten analysiert und geladen hat, werden alle geladenen Objekte und Sammlungen XmlSiteMapProvider SiteMapNode SiteMapNodeCollection schreibgeschützt. Wenn die -Eigenschaft aus einer Siteübersichtsdatei analysiert, werden anwendungsspezifische URLs sowie relative URLs in anwendungs absolute XmlSiteMapProvider Url virtuelle Pfade konvertiert.

XmlSiteMapProviderabonniert Dateiänderungsbenachrichtigungen für die SITEMAP-Datei. Wenn eine Änderung an der SITEMAP-Datei vorgenommen wird, wird erneut geladen, und die XmlSiteMapProvider Siteübersichtsstruktur wird neu erstellt.

Gilt für

Siehe auch