XmlSiteMapProvider.BuildSiteMap Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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.