private static void Initialize()
 {
     if (_providers == null)
     {
         HttpRuntime.CheckAspNetHostingPermission(AspNetHostingPermissionLevel.Low, "Feature_not_supported_at_this_level");
         lock (_lockObject)
         {
             if (_providers == null)
             {
                 SiteMapSection siteMap = RuntimeConfig.GetAppConfig().SiteMap;
                 if (siteMap == null)
                 {
                     _providers = new SiteMapProviderCollection();
                 }
                 else
                 {
                     if (!siteMap.Enabled)
                     {
                         throw new InvalidOperationException(System.Web.SR.GetString("SiteMap_feature_disabled", new object[] { "system.web/siteMap" }));
                     }
                     siteMap.ValidateDefaultProvider();
                     _providers = siteMap.ProvidersInternal;
                     _provider  = _providers[siteMap.DefaultProvider];
                     _providers.SetReadOnly();
                 }
             }
         }
     }
 }
        private static void Initialize()
        {
            if (_providers != null)
            {
                return;
            }

            HttpRuntime.CheckAspNetHostingPermission(AspNetHostingPermissionLevel.Low, SR.Feature_not_supported_at_this_level);

            lock (_lockObject) {
                if (_providers != null)
                {
                    return;
                }

                SiteMapSection config = RuntimeConfig.GetAppConfig().SiteMap;
                if (config == null)
                {
                    // just return an empty collection so that designer will work.
                    _providers = new SiteMapProviderCollection();
                    return;
                }

                if (!config.Enabled)
                {
                    throw new InvalidOperationException(SR.GetString(SR.SiteMap_feature_disabled, SiteMap.SectionName));
                }

                // Make sure the default provider exists.
                config.ValidateDefaultProvider();

                _providers = config.ProvidersInternal;
                _provider  = _providers[config.DefaultProvider];
                _providers.SetReadOnly();
            }
        }