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 Websitezuordnungsinformationen 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 der Websitekarte zurück.
Ausnahmen
Die XmlSiteMapProvider Initialisierung wurde nicht ordnungsgemäß ausgeführt.
- oder -
A siteMapFile wird für ein <siteMapNode> nicht eindeutiges Element analysiert.
- oder -
Die durch die siteMapFile Datei angegebene Datei hat nicht die Dateinamenerweiterung .sitemap.
- oder -
Die durch die siteMapFile Datei angegebene ist nicht vorhanden.
- oder -
Ein im Rahmen provider eines <siteMapNode> Anbieters konfigurierter Anbieter gibt einen Null-Stammknoten zurück.
Dies siteMapFile ist angegeben, aber der Pfad liegt außerhalb der aktuellen Verzeichnisstruktur für die Anwendung.
Fehler beim Laden der Konfigurationsdatei.
- oder -
Das oberste Element der Konfigurationsdatei ist nicht named <siteMap>.
- oder -
In der Konfigurationsdatei sind mehr als ein oberster Knoten vorhanden.
- oder -
Ein untergeordnetes Element des Elements <siteMap> hat einen anderen Namen als <siteMapNode>.
- oder -
Ein unerwartetes Attribut wird für die <siteMapNode>.
- oder -
Unter einem <siteMapNode> Ort, an dem die provider Elemente festgelegt sind, werden geschachtelt.
- oder -
Die roles der <siteMapNode> ungültigen Zeichen enthalten.
- oder -
A url wird für ein <siteMapNode> nicht eindeutiges Element analysiert.
- oder -
Ein SiteMapNode Fehler wurde mit einem doppelten Wert für Key.
- oder -
Title Das ResourceKey oder wurde für ein SiteMapNode oder ein custom Attribut angegeben, das für den Knoten definiert wurde, enthielt einen expliziten Ressourcenausdruck.
- oder -
Ein expliziter Ressourcenausdruck wurde entweder auf das Title Attribut oder Description ein custom Attribut einer SiteMapNode Ressource angewendet, aber die expliziten Informationen waren ungültig.
- oder -
Fehler beim Analysieren eines Url .SiteMapNode
Ein benannter Anbieter wurde in der aktuellen Websitezuordnungsanbietersammlung nicht gefunden.
Ein <siteMapNode> Verweis auf eine Websitezuordnungsdatei enthält eine leere Zeichenfolge für die siteMapFile.
A siteMapFile von a <siteMapNode> uses a physical path.
- oder -
Fehler beim Analysieren des virtuellen Pfads zu der datei, die in der siteMapFileDatei angegeben ist.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie eine neue Instanz der XmlSiteMapProvider Klasse erstellt und initialisiert wird, um eine Websitezuordnung aus 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 vorherigen Codebeispiel wird eine XML-Datei verwendet, die sich im virtuellen Stamm der ASP.NET-Anwendung befindet. Die Datei weist das folgende Format auf:
<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 Websitezuordnung aus dem beständigen Speicher zu laden und zu erstellen.
Das Standardverhalten, wenn die Sicherheitskürzung aktiviert ist, finden Sie unter "Hinweise" in IsAccessibleToUser.
Nachdem das XmlSiteMapProvider Objekt Die Websitezuordnungsdaten analysiert und geladen hat, werden alle geladenen SiteMapNode Objekte und SiteMapNodeCollection Auflistungen schreibgeschützt erstellt. Wenn die XmlSiteMapProviderUrl Eigenschaft aus einer Websitezuordnungsdatei analysiert wird, werden anwendungsrelative URLs sowie relative URLs in anwendungs absolute virtuelle Pfade konvertiert.
Die XmlSiteMapProvider Abonnieren von Dateiänderungsbenachrichtigungen für die SITEMAP-Datei. Wenn änderungen an der SITEMAP-Datei vorgenommen werden, wird die XmlSiteMapProvider Datei neu geladen, und die Struktur der Websiteübersicht wird neu erstellt.