XmlSiteMapProvider 类

定义

XmlSiteMapProvider 类是从 SiteMapProvider 类派生的,并且是 ASP.NET 的默认站点地图提供者。 XmlSiteMapProvider 类根据文件扩展名为 .sitemap 的 XML 文件生成站点地图树。

public ref class XmlSiteMapProvider : System::Web::StaticSiteMapProvider, IDisposable
public class XmlSiteMapProvider : System.Web.StaticSiteMapProvider, IDisposable
type XmlSiteMapProvider = class
    inherit StaticSiteMapProvider
    interface IDisposable
Public Class XmlSiteMapProvider
Inherits StaticSiteMapProvider
Implements IDisposable
继承
实现

注解

XmlSiteMapProvider 从遵循已知架构的 XML 文件加载站点地图数据。 站点地图数据由 <siteMap> 标记绑定,由嵌套 <siteMapNode> 标记组成。 和 XmlSiteMapProvider 类对站点地图数据的结构施加SiteMapProvider了两个约束:

  • 只能存在一个根节点。

  • 对于 SiteMapNode 指定 URL 的对象,URL 在提供程序的范围内必须是唯一的。 (对于未指定 URL 的节点,所有键都必须是唯一的。)

下面的代码示例演示可与 一起使用的 XML 文件的示例 XmlSiteMapProvider

<siteMap>  
  <siteMapNode title="RootNode" description="This is the root node of the site map. There can be only one root node." url="Page1.aspx" >  
    <siteMapNode title="ChildofRootNode" description="Descriptions do not have to be unique." url="Page2.aspx">  
      <siteMapNode title="ChildOfChildNode" description="SiteMapNode objects can be nested to any level." url="Page3.aspx"/>  
    </siteMapNode>  
    <siteMapNode title="ChildofRootNode" description="Descriptions do not have to be unique." url="Page4.aspx"/>  
  </siteMapNode>  
</siteMap>  

XmlSiteMapProvider是 ASP.NET 的默认提供程序,它从位于 ASP.NET 应用程序的目录结构中的名为 Web.sitemap 的文件读取 XML 数据。 默认情况下,Web.sitemap 文件位于应用程序根目录中;但是,如果要更改从 XmlSiteMapProvider 中加载数据的文件的名称或位置,则可以替代Web.config文件中的默认配置。 通过替代 Web.config 文件中的默认配置设置,可以根据需要为每个 ASP.NET 应用程序定制 的行为 XmlSiteMapProvider

下面的代码示例演示了Web.config 文件的示例,其中 XmlSiteMapProvider 仍使用 ,但使用了不同的站点地图文件。 由于 对象中的所有 SiteMapProviderCollection 提供程序都必须以唯一方式命名,因此在 Web.config 文件中指定的提供程序使用默认提供程序以外的名称,但也设置为默认提供程序,以便使用它而不是 XmlSiteMapProvider 在默认 ASP.NET 配置中指定的 。

注意

您可以更改网站导航数据文件的名称,但不能更改其扩展名。 XmlSiteMapProvider仅从以文件扩展名 .sitemap 命名的文件读取数据。

<siteMap defaultProvider="MyXmlSiteMapProvider" enabled="true">  
  <providers>  
    <add name="MyXmlSiteMapProvider"  
      description="SiteMap provider that reads in .sitemap files."  
      type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"  
      siteMapFile="CustomWeb.sitemap" />  
  </providers>  
</siteMap>  

构造函数

XmlSiteMapProvider()

创建 XmlSiteMapProvider 类的未命名的新实例。

属性

CurrentNode

获取表示当前请求页的 SiteMapNode 对象。

CurrentNode

获取表示当前请求页的 SiteMapNode 对象。

(继承自 SiteMapProvider)
Description

获取一条简短的易懂描述,它适合在管理工具或其他用户界面 (UI) 中显示。

(继承自 ProviderBase)
EnableLocalization

获取或设置一个布尔值,该值指示是否返回 SiteMapNode 特性的本地化的值。

(继承自 SiteMapProvider)
Name

获得一个友好名称,用于在配置过程中引用提供程序。

(继承自 ProviderBase)
ParentProvider

获取或设置当前提供程序的父 SiteMapProvider 对象。

(继承自 SiteMapProvider)
ResourceKey

获取或设置用于本地化 SiteMapNode 特性的资源键。

(继承自 SiteMapProvider)
RootNode

获取站点地图的根节点。

RootProvider

获取当前提供程序层次结构中的根 SiteMapProvider 对象。

(继承自 SiteMapProvider)
SecurityTrimmingEnabled

获取一个布尔值,该值指示站点地图提供程序是否根据用户的角色筛选站点地图节点。

(继承自 SiteMapProvider)

方法

AddNode(SiteMapNode)

将一个 SiteMapNode 对象添加到由站点地图提供程序维护的节点集合。

(继承自 SiteMapProvider)
AddNode(SiteMapNode, SiteMapNode)

在当前提供程序维护的集合中添加一个 SiteMapNode 对象。

AddProvider(String, SiteMapNode)

将一个子站点地图提供程序链接到当前提供程序。

BuildSiteMap()

从 XML 文件加载站点地图信息,并在内存中生成它。

Clear()

移除子和父站点地图节点的集合中的所有元素和 XmlSiteMapProvider 对象在内部作为其状态的一部分进行跟踪的站点地图提供程序。

Dispose()

通知 Web.sitemap 文件的文件监视器:XmlSiteMapProvider 对象不再要求监视该文件。

Dispose(Boolean)

通知 Web.sitemap 文件的文件监视器:XmlSiteMapProvider 对象不再要求监视该文件。 Dispose(Boolean) 方法接受一个布尔参数,该参数指示此方法是否由用户代码调用。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
FindSiteMapNode(HttpContext)

使用指定的 SiteMapNode 对象检索表示当前请求页的 HttpContext 对象。

(继承自 SiteMapProvider)
FindSiteMapNode(String)

检索表示位于指定 URL 处的页的 SiteMapNode 对象。

FindSiteMapNodeFromKey(String)

根据指定的键检索 SiteMapNode 对象。

GetChildNodes(SiteMapNode)

返回站点地图的子节点。

GetChildNodes(SiteMapNode)

检索特定 SiteMapNode 对象的子站点地图节点。

(继承自 StaticSiteMapProvider)
GetCurrentNodeAndHintAncestorNodes(Int32)

在站点地图提供程序检索当前请求页的节点并获取当前页的父和祖先站点地图节点时,为其提供经优化的查找方法。

(继承自 SiteMapProvider)
GetCurrentNodeAndHintNeighborhoodNodes(Int32, Int32)

在站点地图提供程序检索当前请求页的节点并获取当前节点附近的站点地图节点时,为其提供经优化的查找方法。

(继承自 SiteMapProvider)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetParentNode(SiteMapNode)

返回站点地图的父节点。

GetParentNode(SiteMapNode)

检索特定 SiteMapNode 对象的父站点地图节点。

(继承自 StaticSiteMapProvider)
GetParentNodeRelativeToCurrentNodeAndHintDownFromParent(Int32, Int32)

在站点地图提供程序检索当前请求页的祖先节点并获取其子代节点时,为其提供经优化的查找方法。

(继承自 SiteMapProvider)
GetParentNodeRelativeToNodeAndHintDownFromParent(SiteMapNode, Int32, Int32)

在站点地图提供程序检索指定 SiteMapNode 对象的祖先节点并获取其子节点时,为其提供经优化的查找方法。

(继承自 SiteMapProvider)
GetRootNodeCore()

检索当前站点地图数据结构的顶层节点。

GetType()

获取当前实例的 Type

(继承自 Object)
HintAncestorNodes(SiteMapNode, Int32)

提供一个方法,站点地图提供程序重写该方法来执行相对于指定 SiteMapNode 对象的一个或多个层次的父和祖先节点的经优化的检索。

(继承自 SiteMapProvider)
HintNeighborhoodNodes(SiteMapNode, Int32, Int32)

提供一个方法,站点地图提供程序可以重写该方法以执行在指定节点附近找到的节点的经优化的检索。

(继承自 SiteMapProvider)
Initialize(String, NameValueCollection)

初始化 XmlSiteMapProvider 对象。 Initialize(String, NameValueCollection) 方法并不实际生成站点地图,它只是为此而准备 XmlSiteMapProvider 对象的状态。

IsAccessibleToUser(HttpContext, SiteMapNode)

检索一个布尔值,该值指示指定的 SiteMapNode 对象是否可由用户在指定的上下文中查看。

(继承自 SiteMapProvider)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
RemoveNode(SiteMapNode)

从提供程序跟踪的所有节点集合中移除指定的 SiteMapNode 对象。

RemoveProvider(String)

从当前提供程序的层次结构中移除链接的子站点地图提供程序。

ResolveSiteMapNode(HttpContext)

引发 SiteMapResolve 事件。

(继承自 SiteMapProvider)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

事件

SiteMapResolve

当调用 CurrentNode 属性时发生。

(继承自 SiteMapProvider)

适用于

另请参阅