SiteMapProvider.RootProvider Property
Gets the root SiteMapProvider object in the current provider hierarchy.
Namespace: System.Web
Assembly: System.Web (in System.Web.dll)
Property Value
Type: System.Web.SiteMapProviderAn SiteMapProvider that is the top-level site map provider in the provider hierarchy that the current provider belongs to.
| Exception | Condition |
|---|---|
| ProviderException | There is a circular reference to the current site map provider. |
All classes that implement the SiteMapProvider class can support the concept of a site map provider hierarchy. Any hierarchical relationships between providers are maintained outside the scope of a SiteMapProviderCollection collection by the providers themselves. For an example of a functional provider hierarchy, see XmlSiteMapProvider.
The following code example demonstrates how to implement the RootProvider property in a class that implements the abstract SiteMapProvider class. The SimpleTextSiteMapProvider uses simple logic to determine whether the current provider is part of a provider hierarchy. If the provider is part of a hierarchy, it uses the RootProvider property for the parent provider as its own. If the provider is not part of a hierarchy, the provider is its own root provider.
This code example is part of a larger example provided for the SiteMapProvider class.
// Implement the ParentProvider property. public override SiteMapProvider ParentProvider { get { return parentSiteMapProvider; } set { parentSiteMapProvider = value; } } // Implement the RootProvider property. public override SiteMapProvider RootProvider { get { // If the current instance belongs to a provider hierarchy, it // cannot be the RootProvider. Rely on the ParentProvider. if (this.ParentProvider != null) { return ParentProvider.RootProvider; } // If the current instance does not have a ParentProvider, it is // not a child in a hierarchy, and can be the RootProvider. else { return this; } } }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.