XmlSiteMapProvider.BuildSiteMap Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Site haritası bilgilerini bir XML dosyasından yükler ve bellekte oluşturur.
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
Site haritası gezinti yapısının kökünü SiteMapNode döndürür.
Özel durumlar
XmlSiteMapProvider düzgün başlatılmadı.
-veya-
A siteMapFile , benzersiz olmayan bir <siteMapNode> için ayrıştırılır.
-veya-
tarafından siteMapFile belirtilen dosya .sitemap dosya adı uzantısına sahip değil.
-veya-
tarafından siteMapFile belirtilen dosya yok.
-veya-
içinde provider yapılandırılan sağlayıcı <siteMapNode> null bir kök düğüm döndürür.
siteMapFile belirtilir, ancak yol uygulama için geçerli dizin yapısının dışındadır.
Yapılandırma dosyası yüklenirken bir hata oluştu.
-veya-
Yapılandırma dosyasının en üst öğesi değildir named <siteMap>.
-veya-
Yapılandırma dosyasında birden fazla üst düğüm var.
-veya-
öğesinin bir alt öğesinin <siteMap> adı dışında <siteMapNode>bir ada sahiptir.
-veya-
için <siteMapNode>beklenmeyen bir öznitelik ayrıştırılır.
-veya-
Alt öğeler, öğesinin ayarlandığı yerin provider altında <siteMapNode> iç içe yerleştirilmiştir.
-veya-
roles
<siteMapNode> Geçerli olmayan içeren karakterlerin sayısı.
-veya-
A url , benzersiz olmayan bir <siteMapNode> için ayrıştırılır.
-veya-
SiteMapNode için Keyyinelenen değerle karşılaşıldı.
-veya-
ResourceKey veya Title düğümü için tanımlanan bir SiteMapNodecustom veya özniteliğinde belirtildi, açık bir kaynak ifadesi içeriyordu.
-veya-
Açık bir kaynak ifadesi veya veya özniteliğine customSiteMapNode uygulandı TitleDescription, ancak açık bilgiler geçerli değildi.
-veya-
bir öğesini ayrıştırırken Url bir SiteMapNodehata oluştu.
Adlandırılmış sağlayıcı geçerli site haritası sağlayıcıları koleksiyonunda bulunamıyor.
Site <siteMapNode> haritası dosyasına başvuran bir dosya için siteMapFileboş bir dize içeriyor.
bir siteMapFile fiziksel <siteMapNode> yol kullanır.
-veya-
sanal yolu içinde siteMapFilebelirtilen dosyanın ayrıştırılması denenirken bir hata oluştu.
Örnekler
Aşağıdaki kod örneği, sınıfın yeni bir örneğinin XmlSiteMapProvider nasıl oluşturulacağını ve XML verilerinden bir site haritası oluşturmak için nasıl başlatacağını 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, ASP.NET uygulamasının sanal kökünde bulunan bir XML dosyası kullanır. Dosya aşağıdaki biçime sahiptir:
<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
BuildSiteMap yöntemi, site eşlemesini kalıcı depolama alanından yüklemek ve derlemek için çağrılır.
Güvenlik kırpma etkinleştirildiğinde varsayılan davranış için, içindeki "Açıklamalar" konusuna IsAccessibleToUserbakın.
XmlSiteMapProvider Nesne site haritası verilerini ayrıştırıp yükledikten sonra, yüklenen SiteMapNode tüm nesneler ve SiteMapNodeCollection koleksiyonlar salt okunur hale getirilir. XmlSiteMapProvider özelliği bir site eşleme dosyasından Url ayrıştırıldığında, uygulama göreli URL'lerinin yanı sıra göreli URL'leri de uygulama mutlak sanal yollarına dönüştürür.
, XmlSiteMapProvider .sitemap dosyası için dosya değişikliği bildirimlerine abonedir. .sitemap dosyasında herhangi bir değişiklik yapılırsa, XmlSiteMapProvider yeniden yüklenir ve site haritası yapısı yeniden oluşturulur.