XmlSiteMapProvider.BuildSiteMap Metoda

Definice

Načte informace mapy webu ze souboru XML a sestaví je v paměti.

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

Návraty

SiteMapNode

Vrátí kořen navigační SiteMapNode struktury mapy webu.

Výjimky

Objekt XmlSiteMapProvider se neinicializoval správně.

-nebo- Se siteMapFile parsuje pro , <siteMapNode> který není jedinečný.

-nebo- Soubor určený objektem siteMapFile nemá příponu .sitemap.

-nebo- Soubor určený siteMapFile objektem neexistuje.

-nebo- Poskytovatel nakonfigurovaný v provider parametru vrátí <siteMapNode> nulový kořenový uzel.

Hodnota siteMapFile je zadaná, ale cesta se nachází mimo aktuální adresářovou strukturu aplikace.

Při načítání konfiguračního souboru došlo k chybě.

-nebo- Horní prvek konfiguračního souboru není named <siteMap> .

-nebo- V konfiguračním souboru existuje více než jeden hlavní uzel.

-nebo- Podřízený objekt objektu <siteMap> má jiný název než <siteMapNode> .

-nebo- Neočekávaný atribut je analyzován pro <siteMapNode> .

-nebo- Dílčí prvky jsou vnořené pod <siteMapNode> objektem , kde provider je nastavený objekt .

-nebo- Hodnota roles obsahuje <siteMapNode> znaky, které nejsou platné.

-nebo- Se url parsuje pro , <siteMapNode> který není jedinečný.

-nebo- Došlo SiteMapNode k chybě s duplicitní hodnotou pro Key .

-nebo- Hodnota ResourceKey nebo byla zadána u atributu nebo definovaného Title pro uzel obsahoval explicitní výraz SiteMapNode custom prostředku.

-nebo- Explicitní výraz prostředku byl použit na atribut nebo , ale explicitní Title Description informace nebyly custom SiteMapNode platné.

-nebo- Při analýze souboru došlo k Url SiteMapNode chybě.

V aktuální kolekci zprostředkovatelů mapy webu se nenašel pojmenovaný zprostředkovatel.

Odkazující <siteMapNode> soubor mapy webu obsahuje prázdný řetězec pro siteMapFile .

A siteMapFile objektu <siteMapNode> používá fyzickou cestu.

-nebo- Při pokusu o parsování virtuální cesty k souboru zadanému v souboru došlo k siteMapFile chybě.

Příklady

Následující příklad kódu ukazuje, jak vytvořit novou instanci třídy a inicializovat ji k sestavení XmlSiteMapProvider mapy webu z dat 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>");  
 }  

Předchozí příklad kódu používá soubor XML, který je umístěn ve virtuálním kořenovém adresáři ASP.NET aplikace. Soubor má následující formát:

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

Poznámky

Volá BuildSiteMap se metoda pro načtení a sestavení mapy webu z trvalého úložiště.

Výchozí chování při povolení ořezávání zabezpečení najdete v části "Poznámky" v IsAccessibleToUser souboru .

Poté, co objekt analyzuje a načte data mapy webu, jsou všechny načtené objekty a kolekce XmlSiteMapProvider SiteMapNode SiteMapNodeCollection provedeny jen pro čtení. Když objekt analyzuje vlastnost ze souboru mapy webu, převede adresy URL relativní vzhledem k aplikaci a také relativní adresy URL na absolutní virtuální XmlSiteMapProvider Url cesty aplikace.

Přihlášení XmlSiteMapProvider k odběru oznámení o změně souboru pro soubor .sitemap. Pokud v souboru .sitemap dojde k nějaké změně, znovu se načte a znovu se sestaví struktura XmlSiteMapProvider mapy webu.

Platí pro

Viz také