XmlSiteMapProvider.BuildSiteMap Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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.