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 o mapě 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 SiteMapNode navigační struktury mapy webu.
Výjimky
Nebyl XmlSiteMapProvider správně inicializován.
nebo
Parsuje siteMapFile se pro to <siteMapNode> , co není jedinečné.
nebo
Soubor určený souborem siteMapFile nemá příponu názvu souboru .mapa webu.
nebo
Soubor určený pro danou siteMapFile složku neexistuje.
nebo
Zprostředkovatel nakonfigurovaný v provider kořenovém <siteMapNode> uzlu s hodnotou null.
Zadaná siteMapFile , ale cesta leží 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 horní uzel.
nebo
Dítě má <siteMap> jiné jméno než <siteMapNode>.
nebo
Neočekávaný atribut je analyzován pro <siteMapNode>.
nebo
Dílčí prvky jsou vnořené pod místem <siteMapNode> , kde je nastavena provider .
nebo
Hodnota roles<siteMapNode> obsahující znaky, které nejsou platné.
nebo
Parsuje url se pro to <siteMapNode> , co není jedinečné.
nebo
Byla SiteMapNode zjištěna duplicitní hodnota pro Key.
nebo
Hodnota ResourceKey nebo Title byla zadána u atributu SiteMapNode definovaného custom pro uzel explicitní výraz prostředku.
nebo
Explicitní výraz prostředku byl použit buď u atributu Title nebo Descriptioncustom atributu, SiteMapNode ale explicitní informace nebyly platné.
nebo
Při analýze Url objektu SiteMapNode.
Pojmenovaný zprostředkovatel nebyl nalezen v aktuální kolekci zprostředkovatelů mapy webu.
<siteMapNode> Odkazující soubor mapy webu obsahuje prázdný řetězec pro siteMapFile.
A siteMapFile z <siteMapNode> fyzické cesty.
nebo
Při pokusu o parsování virtuální cesty k souboru zadanému v souboru siteMapFiledošlo k chybě.
Příklady
Následující příklad kódu ukazuje, jak vytvořit novou instanci XmlSiteMapProvider třídy a inicializovat ji k sestavení 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 umístěný ve virtuálním kořenovém adresáři aplikace ASP.NET. 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á se BuildSiteMap metoda pro načtení a sestavení mapy webu z trvalého úložiště.
Výchozí chování při ořezávání zabezpečení je povoleno, viz "Poznámky" v IsAccessibleToUser.
Po analýze XmlSiteMapProvider a načtení dat mapy webu se všechny načtené SiteMapNode objekty a SiteMapNodeCollection kolekce vytvoří jen pro čtení. Když parsuje XmlSiteMapProviderUrl vlastnost ze souboru mapy webu, převede adresy URL relativní vzhledem k aplikaci a také relativní adresy URL na absolutní virtuální cesty aplikace.
Přihlásí XmlSiteMapProvider se k odběru oznámení o změnách souborů pro soubor .mapa webu. Pokud se v souboru .mapa webu provede nějaká změna, znovu se XmlSiteMapProvider načte a struktura mapy webu se znovu sestaví.