XmlSiteMapProvider.BuildSiteMap Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Carga la información del mapa del sitio de un archivo XML y lo crea en memoria.
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
Devoluciones
Devuelve el nodo SiteMapNode raíz de la estructura de navegación del mapa del sitio.
Excepciones
No se ha inicializado XmlSiteMapProvider correctamente.
o bien
Se ha analizado un siteMapFile
para un <siteMapNode>
que no es único.
o bien
El archivo especificado por siteMapFile
no tiene la extensión de nombre de archivo .sitemap.
o bien
El archivo especificado por siteMapFile
no existe.
o bien
Un proveedor configurado en provider
de <siteMapNode>
devuelve un nodo raíz null.
Se ha especificado siteMapFile
pero la ruta de acceso queda fuera de la estructura de directorios actual de la aplicación.
Se ha producido un error al cargar el archivo de configuración.
o bien
El elemento superior del archivo de configuración no es named <siteMap>
.
o bien Existe más de un nodo superior en el archivo de configuración.
o bien
Un elemento secundario de <siteMap>
tiene un nombre distinto de <siteMapNode>
.
o bien
Se ha analizado un atributo inesperado para <siteMapNode>
.
o bien
Los subelementos se anidan bajo <siteMapNode>
donde se establece provider
.
o bien
roles
de <siteMapNode>
contienen caracteres que no son válidos.
o bien
Se ha analizado un url
para un <siteMapNode>
que no es único.
o bien Se ha encontrado un nodo SiteMapNode con un valor duplicado para Key.
o bien
Se ha especificado la propiedad ResourceKey o Title en el nodo SiteMapNode o un atributo custom
definido para el nodo contiene una expresión de recurso explícita.
o bien
Se ha aplicado una expresión de recurso explícita a la propiedad Title o Description o a un atributo custom
de un nodo SiteMapNode pero la información explícita no era válida.
o bien Se ha producido un error al analizar la propiedad Url de un nodo SiteMapNode.
No se puede encontrar un proveedor con nombre en la colección de proveedores del mapa del sitio actual.
<siteMapNode>
que hace referencia a un archivo de mapa del sitio contiene una cadena vacía para siteMapFile
.
Un siteMapFile
de un <siteMapNode>
utiliza una ruta de acceso física.
o bien
Se ha producido un error al intentar analizar la ruta de acceso virtual al archivo especificado en siteMapFile
.
Ejemplos
En el ejemplo de código siguiente se muestra cómo crear una nueva instancia de la clase e inicializar para compilar un mapa del sitio a partir XmlSiteMapProvider de datos 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>");
}
En el ejemplo de código anterior se usa un archivo XML que se encuentra en la raíz virtual de la ASP.NET aplicación. El archivo tiene el formato siguiente:
<siteMap>
<siteMapNode title="RootNode" description="The root page." url="WebForm1.aspx">
<siteMapNode title="CurrentNode" description="Some sub page." url="WebForm2.aspx"/>
</siteMapNode>
</siteMap>
Comentarios
Se BuildSiteMap llama al método para cargar y compilar el mapa del sitio a partir de almacenamiento persistente.
Para obtener el comportamiento predeterminado cuando se habilita el recorte de seguridad, vea "Comentarios" en IsAccessibleToUser .
Una vez que el objeto analiza y carga los datos del mapa del sitio, todos los objetos y XmlSiteMapProvider SiteMapNode SiteMapNodeCollection colecciones cargados se hacen de solo lectura. Cuando analiza la propiedad de un archivo de mapa del sitio, convierte las direcciones URL relativas a la aplicación, así como las direcciones URL relativas, en rutas de acceso virtuales XmlSiteMapProvider Url absolutas de la aplicación.
se XmlSiteMapProvider suscribe a las notificaciones de cambio de archivo para el archivo .csv. Si se realiza algún cambio en el archivo .csv, se vuelve a cargar y se vuelve a generar la estructura del XmlSiteMapProvider mapa del sitio.