2012-03-09 121 views
2

我正在使用CustomSiteMapProvider,它的派生自 StaticSiteMapProvider。 我已经覆盖BuildSiteMap()方法来构建Sitemap.It正在工作 正确, 但是谁能告诉我它是如何工作的内部?我发现它 不止一次被调用。 为什么这个执行多个?BuildSiteMap()方法如何工作?

此方法执行多少次?

我看了很多文章,但是我没有发现关于 BuildSiteMap()的内部工作的任何讨论或者为什么它会被执行超过 一次?

有什么想法?任何ARTICAL或链接将不胜感激...

回答

0

请仔细阅读MSDN

它说

BuildSiteMap方法由的默认实现调用FindSiteMapNodeGetChildNodesGetParentNode方法。

如果忽略BuildSiteMap方法在派生类中, 确保它在加载站点地图数据只有一次,在后续调用回报。

因此,在某些时候,系统会调用FindSiteMapNode,GetChildNodes和GetParentNode方法。然后BuildSiteMap也会被调用。

这是另一个MS engineer's post