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> 标记组成。 站点地图数据的结构和SiteMapProvider类施加XmlSiteMapProvider了两个约束:

  • 只有一个根节点可以存在。

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

下面的代码示例演示可与 <a0/&a0> 一起使用的 XML 文件示例。

<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 文件中指定的提供程序使用默认提供程序以外的名称,但也设置为默认提供程序,以便使用它而不是默认 ASP.NET 配置中指定的 XmlSiteMapProvider

注释

可以更改网站导航数据文件的名称,但不能更改其扩展名。 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)

将对象 SiteMapNode 添加到由当前提供程序维护的集合。

AddNode(SiteMapNode)

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

(继承自 SiteMapProvider)
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)

检索一个 SiteMapNode 对象,该对象表示指定 URL 处的页面。

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)

适用于

另请参阅