2012-03-09 75 views
2

我正在使用CustomSiteMapProvider,它的派生自 StaticSiteMapProvider。 我已經覆蓋BuildSiteMap()方法來構建Sitemap.It正在工作 正確, 但是誰能告訴我它是如何工作的內部?我發現它 不止一次被調用。 爲什麼這個執行多個?BuildSiteMap()方法如何工作?

此方法執行多少次?

我看了很多文章,但是我沒有發現關於 BuildSiteMap()的內部工作的任何討論或者爲什麼它會被執行超過 一次?

有什麼想法?任何ARTICAL或鏈接將不勝感激...

回答

0

請仔細閱讀MSDN

它說

BuildSiteMap方法由的默認實現調用FindSiteMapNodeGetChildNodesGetParentNode方法。

如果忽略BuildSiteMap方法在派生類中, 確保它在加載站點地圖數據只有一次,在後續調用回報。

因此,在某些時候,系統會調用FindSiteMapNode,GetChildNodes和GetParentNode方法。然後BuildSiteMap也會被調用。

這是另一個MS engineer's post