SiteMapProvider.RootProvider Property
Assembly: System.Web (in system.web.dll)
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; } } }