XmlSiteMapProvider.BuildSiteMap Méthode

Définition

Charge les informations de plan de site à partir d'un fichier XML et les génère en mémoire.

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

Retours

SiteMapNode

Retourne le SiteMapNode racine de la structure de navigation de plan de site.

Exceptions

Le XmlSiteMapProvider n'a pas été initialisé correctement.

  • ou - Un siteMapFile est analysé pour un <siteMapNode> qui n'est pas unique.

  • ou - Le fichier spécifié par le siteMapFile ne possède pas l'extension de nom de fichier .sitemap.

  • ou - Le fichier spécifié par le siteMapFile n'existe pas.

  • ou - Un fournisseur configuré dans le provider d'un <siteMapNode> retourne un nœud racine null.

Le siteMapFile est spécifié mais le chemin d'accès se situe en dehors de la structure de répertoire actif pour l'application.

Une erreur se produit lors du chargement du fichier de configuration.

  • ou - L'élément supérieur du fichier de configuration n'est pas named <siteMap>.

  • ou - Plusieurs nœuds supérieurs existent dans le fichier de configuration.

  • ou - Un enfant du <siteMap> n'est pas nommé <siteMapNode>.

  • ou - Un attribut inattendu est analysé pour le <siteMapNode>.

  • ou - Des sous-éléments sont imbriqués sous un <siteMapNode> où le provider est défini.

  • ou - Les roles du <siteMapNode> contiennent des caractères qui ne sont pas valides.

  • ou - Un url est analysé pour un <siteMapNode> qui n'est pas unique.

  • ou - Un SiteMapNode a été rencontré avec une valeur en double pour Key.

  • ou - Le ResourceKey ou Title a été spécifié sur un SiteMapNode ou un attribut custom défini pour le nœud contenait une expression de ressource explicite.

  • ou - Une expression de ressource explicite a été appliquée au Title ou Description ou à un attribut custom d'un SiteMapNode, mais les informations explicites n'étaient pas valides.

  • ou - Une erreur s'est produite lors de l'analyse de Url d'un SiteMapNode.

Un fournisseur nommé est introuvable dans la collection des fournisseurs de plan de site en cours.

Un <siteMapNode> référençant un fichier de plan de site contient une chaîne vide pour le siteMapFile.

Un siteMapFile d'un <siteMapNode> utilise un chemin d'accès physique.

  • ou - Une erreur s'est produite lors de la tentative d'analyse du chemin d'accès virtuel du fichier spécifié dans le siteMapFile.

Exemples

L’exemple de code suivant montre comment créer une nouvelle instance de la XmlSiteMapProvider classe et l’initialiser pour générer un plan de site à partir de données XML.

<%@ 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>");  
 }  

l’exemple de code précédent utilise un fichier XML situé à la racine virtuelle de l’application ASP.NET. Le fichier a le format suivant :

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

Remarques

La BuildSiteMap méthode est appelée pour charger et générer le plan de site à partir d’un stockage persistant.

Pour le comportement par défaut lorsque l’ajustement de la sécurité est activé, consultez la section « Remarques » dans IsAccessibleToUser .

Une fois que l' XmlSiteMapProvider objet a analysé et chargé les données de plan de site, tous les SiteMapNode objets et SiteMapNodeCollection Collections chargés sont en lecture seule. Lorsque le XmlSiteMapProvider analyse la Url propriété à partir d’un fichier de plan de site, elle convertit les URL relatives à l’application, ainsi que les URL relatives, en chemins d’accès virtuels absolus par l’application.

Le XmlSiteMapProvider s’abonne aux notifications de modification de fichier pour le fichier. sitemap. Si une modification est apportée au fichier. sitemap, XmlSiteMapProvider est rechargé et la structure de plan de site est reconstruite.

S’applique à

Voir aussi