System.Web.XmlSiteMapProvider.BuildSiteMap C# (CSharp) Method

BuildSiteMap() public method

public BuildSiteMap ( ) : System.Web.SiteMapNode
return System.Web.SiteMapNode
		public override SiteMapNode BuildSiteMap ()
		{
			if (root != null)
				return root;
			
			// Whenever you call AddNode, it tries to find dups, and will call this method
			// Is this a bug in MS??
			lock (this_lock) {
				if (root != null)
					return root;

				Clear ();
				bool enableLocalization;
				XmlNode node = FindStartingNode (fileVirtualPath, out enableLocalization);
				EnableLocalization = enableLocalization;
				BuildSiteMapRecursive (node, null);

				// if (builtRoot != root) {
				// 	root = builtRoot;
				// 	AddNode (root);
				// }

				return root;
			}
		}

Usage Example

Example #1
0
        private SiteMapNode GetNodeFromProvider(string providerName)
        {
            SiteMapProvider providerFromName = this.GetProviderFromName(providerName);
            SiteMapNode     rootNodeCore     = null;

            if (providerFromName is XmlSiteMapProvider)
            {
                XmlSiteMapProvider provider2 = (XmlSiteMapProvider)providerFromName;
                StringCollection   strings   = new StringCollection();
                if (this._parentSiteMapFileCollection != null)
                {
                    foreach (string str in this._parentSiteMapFileCollection)
                    {
                        strings.Add(str);
                    }
                }
                provider2.BuildSiteMap();
                strings.Add(this._normalizedVirtualPath.VirtualPathString);
                if (strings.Contains(VirtualPath.GetVirtualPathString(provider2._normalizedVirtualPath)))
                {
                    throw new InvalidOperationException(System.Web.SR.GetString("XmlSiteMapProvider_FileName_already_in_use", new object[] { provider2._virtualPath }));
                }
                provider2._parentSiteMapFileCollection = strings;
            }
            rootNodeCore = providerFromName.GetRootNodeCore();
            if (rootNodeCore == null)
            {
                throw new InvalidOperationException(System.Web.SR.GetString("XmlSiteMapProvider_invalid_GetRootNodeCore", new object[] { providerFromName.Name }));
            }
            this.ChildProviderTable.Add(providerFromName, rootNodeCore);
            this._childProviderList         = null;
            providerFromName.ParentProvider = this;
            return(rootNodeCore);
        }
All Usage Examples Of System.Web.XmlSiteMapProvider::BuildSiteMap