private static void LoadProviders() { // Avoid claiming lock if providers are already loaded if (_provider == null) { lock (_lock) { // Do this again to make sure _provider is still null if (_provider == null) { MenuProviderSection section = (MenuProviderSection)ConfigurationManager.GetSection("MenuProvider"); if (section == null) { throw new ConfigurationErrorsException("在配置文件中没找到“MenuProvider”节点"); } SqlMenuProvider pro = new SqlMenuProvider(); _providers = new MenuProviderCollection(); ProvidersHelper.InstantiateProviders(section.Providers, _providers, typeof(MenuProvider)); _provider = _providers[section.DefaultProvider]; if (_provider == null) { throw new ProviderException ("没有找到对应的 MenuProvider"); } } } } }
private static void LoadProviders() { // Avoid claiming lock if providers are already loaded if (_provider == null) { lock (_lock) { // Do this again to make sure _provider is still null if (_provider == null) { MenuProviderSection section = (MenuProviderSection)ConfigurationManager.GetSection("MenuProvider"); if (section == null) throw new ConfigurationErrorsException("�������ļ���û�ҵ���MenuProvider���ڵ�"); SqlMenuProvider pro = new SqlMenuProvider(); _providers = new MenuProviderCollection(); ProvidersHelper.InstantiateProviders(section.Providers, _providers, typeof(MenuProvider)); _provider = _providers[section.DefaultProvider]; if (_provider == null) throw new ProviderException ("û���ҵ���Ӧ�� MenuProvider"); } } } }