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.
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
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.
siteMapFile
belirtilir, 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.