Aracılığıyla paylaş


XmlSiteMapProvider.BuildSiteMap Yöntem

Tanım

Bir XML dosyasından site haritası bilgilerini yükler ve bellekte derlemek.

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

Döndürülenler

SiteMapNode

Site haritası SiteMapNode gezinti yapısının kökünü döndürür.

Özel durumlar

XmlSiteMapProviderdüzgün başlatılmadı.

-veya- siteMapFile, benzersiz olmayan bir için <siteMapNode> ayrıştırıldı.

-veya- tarafından belirtilen dosyanın siteMapFile .sitemap dosya adı uzantısı yok.

-veya- tarafından belirtilen siteMapFile dosya yok.

-veya- içinde yapılandırılan bir provider sağlayıcı null kök düğüm <siteMapNode> döndürür.

siteMapFilebelirtilir, ancak yol uygulamanın geçerli dizin yapısının dışındadır.

Yapılandırma dosyası yüklenirken hata oluştu.

-veya- Yapılandırma dosyasının en üst öğesi named <siteMap> değildir.

-veya- Yapılandırma dosyasında birden fazla üst düğüm vardır.

-veya- alt adının <siteMap> dışında bir adı <siteMapNode> var.

-veya- beklenmeyen bir öznitelik için <siteMapNode> ayrıştırıldı.

-veya- Alt öğeler, ayarlanmış bir <siteMapNode> öğenin altına provider iç içe geçmiştir.

-veya- roles, geçerli değil <siteMapNode> karakterlerini içerir.

-veya- url, benzersiz olmayan bir için <siteMapNode> ayrıştırıldı.

-veya- için SiteMapNode yinelenen bir değerle Key karşılaşıldı.

-veya- düğüm ResourceKey için tanımlanan veya özniteliğinde belirtilen veya açık bir kaynak ifadesi Title SiteMapNode custom içeriyordu.

-veya- açık kaynak ifadesi veya özniteliğine Title Description uygulanmıştır custom ancak SiteMapNode açık bilgiler geçerli değildir.

-veya- bir ayrıştırırken bir Url hata SiteMapNode oluştu.

Adlandırılmış sağlayıcı, geçerli site haritası sağlayıcıları koleksiyonunda bulunamaz.

Bir <siteMapNode> site haritası dosyasına başvuran dosya için boş bir dize siteMapFile içerir.

bir siteMapFile fiziksel <siteMapNode> yol kullanır.

-veya- içinde belirtilen dosyanın sanal yolunu ayrıştırmaya çalışırken bir hata siteMapFile oluştu.

Örnekler

Aşağıdaki kod örneği, sınıfının yeni bir örneğini oluşturma ve XML verilerinden XmlSiteMapProvider bir site haritası derlemek için bunu başlatmayı gösterir.

<%@ 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>");  
 }  

Yukarıdaki kod örneği, uygulamanın sanal kökünde bulunan bir XML ASP.NET kullanır. Dosya aşağıdaki biçime sahip:

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

Açıklamalar

kalıcı BuildSiteMap depolamadan site haritasını yüklemek ve derlemek için yöntemi çağrılır.

Güvenlik kırpma etkinleştirildiğinde varsayılan davranış için bkz. içinde IsAccessibleToUser "Açıklamalar".

Nesne XmlSiteMapProvider site haritası verilerini ayrıştırarak yükledikten sonra, yüklenen tüm SiteMapNode nesneler ve SiteMapNodeCollection koleksiyonlar salt okunur yapılır. , özelliği bir site haritası dosyasından ayrıştırıyorsa, uygulama göreli URL'lerini ve göreli URL'leri uygulama mutlak sanal XmlSiteMapProvider Url yollara dönüştürür.

XmlSiteMapProvider.sitemap dosyası için dosya değişikliği bildirimlerine abone olur. .sitemap dosyasında herhangi bir değişiklik yapılırsa, yeniden XmlSiteMapProvider yüklenir ve site haritası yapısı yeniden oluşturulur.

Şunlara uygulanır

Ayrıca bkz.