XmlSiteMapProvider.BuildSiteMap Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
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ù leprovider
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.