XmlSiteMapProvider.Initialize(String, NameValueCollection) Method

Definition

Initializes the XmlSiteMapProvider object. The Initialize(String, NameValueCollection) method does not actually build a site map, it only prepares the state of the XmlSiteMapProvider to do so.

public:
 override void Initialize(System::String ^ name, System::Collections::Specialized::NameValueCollection ^ attributes);
public override void Initialize (string name, System.Collections.Specialized.NameValueCollection attributes);
override this.Initialize : string * System.Collections.Specialized.NameValueCollection -> unit
Public Overrides Sub Initialize (name As String, attributes As NameValueCollection)

Parameters

name
String

The XmlSiteMapProvider to initialize.

attributes
NameValueCollection

A NameValueCollection that can contain additional attributes to help initialize name. These attributes are read from the XmlSiteMapProvider configuration in the Web.config file.

Exceptions

The XmlSiteMapProvider is initialized more than once.

A SiteMapNode used a physical path to reference a site map file.

-or-

An error occurred while attempting to parse the virtual path supplied for the siteMapFile attribute.

Examples

The following code example demonstrates how to create a new instance of the XmlSiteMapProvider class and initialize it to build a site map from XML data.

<%@ Page Language="c#" %>  
<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);  

     // Call the BuildSiteMap to load the site map information into memory.  
     testXmlProvider.BuildSiteMap();  

     // Prints "/myvirtualdirectory/WebForm1.aspx"  
     Response.Write(testXmlProvider.RootNode.Url + "<BR>");  

     // Prints "/myvirtualdirectory/WebForm2.aspx"  
     Response.Write(testXmlProvider.CurrentNode.Url + "<BR>");  
 }  
 </SCRIPT>  

The preceding code example uses an XML file that is located in the virtual root of the ASP.NET application. The file has the following format:

<siteMap>  
  <siteMapNode title="RootNode" description="The root page." url="WebForm1.aspx">  
    <siteMapNode title="CurrentNode" description="Some sub page." url="WebForm2.aspx"/>  
  </siteMapNode>  
</siteMap>  

Remarks

The XmlSiteMapProvider class overrides the inherited Initialize method to apply several attributes, such as the siteMapFile and description attributes, to the attributes collection.

Applies to

See also