Пример #1
0
        public static ProviderCollection <StorageProviderDefinition> CreateTestDomainStorageProviders()
        {
            ProviderCollection <StorageProviderDefinition> storageProviderDefinitionCollection = new ProviderCollection <StorageProviderDefinition>();
            var sqlStorageObjectFactory = new SqlStorageObjectFactory();

            storageProviderDefinitionCollection.Add(
                new RdbmsProviderDefinition(
                    DatabaseTest.c_testDomainProviderID,
                    sqlStorageObjectFactory,
                    DatabaseTest.TestDomainConnectionString));

            storageProviderDefinitionCollection.Add(
                new RdbmsProviderDefinition(
                    DatabaseTest.DefaultStorageProviderID,
                    sqlStorageObjectFactory,
                    DatabaseTest.TestDomainConnectionString));

            storageProviderDefinitionCollection.Add(
                new UnitTestStorageProviderStubDefinition(
                    DatabaseTest.c_unitTestStorageProviderStubID));

            storageProviderDefinitionCollection.Add(
                new RdbmsProviderDefinition(
                    TableInheritanceMappingTest.TableInheritanceTestDomainProviderID,
                    sqlStorageObjectFactory,
                    DatabaseTest.TestDomainConnectionString));

            return(storageProviderDefinitionCollection);
        }
Пример #2
0
        public void Add_duplicate()
        {
            ProviderCollection col = new ProviderCollection();
            TestProvider       provider;

            provider = new TestProvider();
            provider.Initialize("test", null);


            col.Add(provider);
            col.Add(provider);
        }
Пример #3
0
        public void SetUp()
        {
            try
            {
                var providers = new ProviderCollection <StorageProviderDefinition>();
                providers.Add(new RdbmsProviderDefinition("TheStorageProvider", new SqlStorageObjectFactory(), TestDomainConnectionString));
                var storageConfiguration = new StorageConfiguration(providers, providers["TheStorageProvider"]);

                DomainObjectsConfiguration.SetCurrent(new FakeDomainObjectsConfiguration(storage: storageConfiguration));

                SqlConnection.ClearAllPools();

                var scriptGenerator = new ScriptGenerator(
                    pd => pd.Factory.CreateSchemaScriptBuilder(pd),
                    new RdbmsStorageEntityDefinitionProvider(),
                    new ScriptToStringConverter());
                var scripts = scriptGenerator.GetScripts(MappingConfiguration.Current.GetTypeDefinitions()).Single();

                var masterAgent = new DatabaseAgent(MasterConnectionString);
                masterAgent.ExecuteBatchFile("Database\\CreateDB.sql", false, DatabaseConfiguration.GetReplacementDictionary());

                var databaseAgent = new DatabaseAgent(TestDomainConnectionString);
                databaseAgent.ExecuteBatchString(scripts.SetUpScript, true);
            }
            catch (Exception e)
            {
                Console.WriteLine("SetUpFixture failed: " + e);
                Console.WriteLine();
                throw;
            }
        }
 public static void InstantiateProviders(ProviderSettingsCollection configProviders, ProviderCollection providers, Type providerType)
 {
     foreach (ProviderSettings ps in configProviders)
     {
         providers.Add(InstantiateProvider(ps, providerType));
     }
 }
Пример #5
0
        public static void Initialize()
        {
            ProviderCollection <StorageProviderDefinition> providers = new ProviderCollection <StorageProviderDefinition>();

            providers.Add(new RdbmsProviderDefinition("PerformanceTestDomain", new SqlStorageObjectFactory(), ConnectionString));
            StorageConfiguration storageConfiguration = new StorageConfiguration(providers, providers["PerformanceTestDomain"]);

            DomainObjectsConfiguration.SetCurrent(new FakeDomainObjectsConfiguration(storage: storageConfiguration));


            var rootAssemblyFinder = new FixedRootAssemblyFinder(new RootAssembly(typeof(StandardConfiguration).Assembly, true));
            var assemblyLoader     = new FilteringAssemblyLoader(ApplicationAssemblyLoaderFilter.Instance);
            var assemblyFinder     = new CachingAssemblyFinderDecorator(new AssemblyFinder(rootAssemblyFinder, assemblyLoader));
            ITypeDiscoveryService typeDiscoveryService = new AssemblyFinderTypeDiscoveryService(assemblyFinder);
            MappingConfiguration  mappingConfiguration = new MappingConfiguration(
                new MappingReflector(
                    typeDiscoveryService,
                    new ClassIDProvider(),
                    new ReflectionBasedMemberInformationNameResolver(),
                    new PropertyMetadataReflector(),
                    new DomainModelConstraintProvider(),
                    MappingReflector.CreateDomainObjectCreator()),
                new PersistenceModelLoader(new StorageGroupBasedStorageProviderDefinitionFinder(DomainObjectsConfiguration.Current.Storage)));

            MappingConfiguration.SetCurrent(mappingConfiguration);
        }
Пример #6
0
 public static void InstantiateProviders(ProviderSettingsCollection providerSettings, ProviderCollection providers, Type type)
 {
     foreach (ProviderSettings settings in providerSettings)
     {
         providers.Add(ProvidersHelper.InstantiateProvider(settings, type));
     }
 }
 /// <summary>
 ///
 /// </summary>
 public static void Instantiate(
     Config.DataAccessSection config, ProviderCollection providers, Type providerType)
 {
     foreach (ProviderSettings settings in config.Providers)
     {
         providers.Add(Instantiate(config, settings, providerType));
     }
 }
Пример #8
0
        private static void Initialize()
        {
            if (_initialized)
            {
                return;
            }

            lock (_initializeLock)
            {
                if (_initialized)
                {
                    return;
                }

                OnInitializing();

                var searchElement = AdxstudioCrmConfigurationManager.GetCrmSection().Search;

                _enabled = searchElement.Enabled;

                if (_enabled.GetValueOrDefault(false))
                {
                    _providers = new ProviderCollection <SearchProvider>();

                    foreach (ProviderSettings providerSettings in searchElement.Providers)
                    {
                        _providers.Add(InstantiateProvider <SearchProvider>(providerSettings));
                    }

                    _providers.SetReadOnly();

                    if (searchElement.DefaultProvider == null)
                    {
                        throw new ProviderException("Specify a default search provider.");
                    }

                    try
                    {
                        _provider = _providers[searchElement.DefaultProvider];
                    }
                    catch {}

                    if (_provider == null)
                    {
                        var defaultProviderPropertyInformation = searchElement.ElementInformation.Properties["defaultProvider"];

                        const string message = "Default Search Provider could not be found.";

                        throw defaultProviderPropertyInformation == null
                                                        ? (Exception) new ProviderException(message)
                                                        : new ConfigurationErrorsException(message, defaultProviderPropertyInformation.Source, defaultProviderPropertyInformation.LineNumber);
                    }
                }

                _initialized = true;
            }
        }
Пример #9
0
        public void RegisterClientDependencies(List <IClientDependencyFile> dependencies, IEnumerable <IClientDependencyPath> paths)
        {
            //We will combine both the MVC and web forms providers here to pass in to the method since this method could be executing
            //under the webforms context or the mvc context. This list as a parameter is used only for forced providers and wont
            //matter if it includes the webforms and mvc ones together since they will only ever render when they are in their own
            //context. This is better than checking if it is a System.Web.UI.Page handler currently IMO, plus the provider names
            //between mvc and webforms are generally different.
            var combinedCollection = new ProviderCollection();

            foreach (ProviderBase p in ClientDependencySettings.Instance.MvcRendererCollection)
            {
                combinedCollection.Add(p);
            }
            foreach (ProviderBase p in ClientDependencySettings.Instance.FileRegistrationProviderCollection)
            {
                combinedCollection.Add(p);
            }

            RegisterClientDependencies(Provider, dependencies, paths, combinedCollection);
        }
        private ProviderCollection <StorageProviderDefinition> CopyProvidersAsReadOnly(ProviderCollection <StorageProviderDefinition> providers)
        {
            ProviderCollection <StorageProviderDefinition> providersCopy = new ProviderCollection <StorageProviderDefinition>();

            foreach (StorageProviderDefinition provider in providers)
            {
                providersCopy.Add(provider);
            }

            providersCopy.SetReadOnly();
            return(providersCopy);
        }
Пример #11
0
        public static void InstantiateProviders(ProviderSettingsCollection configProviders, ProviderCollection providers, Type providerType)
        {
            if (!typeof(ProviderBase).IsAssignableFrom(providerType))
            {
                throw new ConfigurationErrorsException(String.Format("type '{0}' must subclass from ProviderBase", providerType));
            }

            foreach (ProviderSettings settings in configProviders)
            {
                providers.Add(InstantiateProvider(settings, providerType));
            }
        }
        public void Initialize_WithProviderCollectionAndProvider()
        {
            StorageProviderDefinition providerDefinition1 = new RdbmsProviderDefinition(
                "ProviderDefinition1", _sqlStorageObjectFactory, "ConnectionString");
            StorageProviderDefinition providerDefinition2 = new RdbmsProviderDefinition(
                "ProviderDefinition2", _sqlStorageObjectFactory, "ConnectionString");
            StorageProviderDefinition providerDefinition3 = new RdbmsProviderDefinition(
                "ProviderDefinition3", _sqlStorageObjectFactory, "ConnectionString");
            ProviderCollection <StorageProviderDefinition> providers = new ProviderCollection <StorageProviderDefinition>();

            providers.Add(providerDefinition1);
            providers.Add(providerDefinition2);

            StorageConfiguration configuration = new StorageConfiguration(providers, providerDefinition3);

            Assert.That(configuration.DefaultStorageProviderDefinition, Is.SameAs(providerDefinition3));
            Assert.That(configuration.StorageProviderDefinitions, Is.Not.SameAs(providers));
            Assert.That(configuration.StorageProviderDefinitions.Count, Is.EqualTo(2));
            Assert.That(providers["ProviderDefinition1"], Is.SameAs(providerDefinition1));
            Assert.That(providers["ProviderDefinition2"], Is.SameAs(providerDefinition2));
        }
Пример #13
0
        public void Add_providerbase()
        {
            ProviderCollection col = new ProviderCollection();
            TestProviderBase   provider;

            provider = new TestProviderBase();
            provider.Initialize("test", null);

            col.Add(provider);

            Assert.AreEqual(provider, col["test"], "A1");
        }
Пример #14
0
        public void Get_nonexistant()
        {
            ProviderCollection col = new ProviderCollection();
            TestProvider       provider;

            provider = new TestProvider();
            provider.Initialize("test", null);


            col.Add(provider);

            Assert.AreEqual(provider, col["test"], "A1");
            Assert.IsNull(col["test2"], "A2");
        }
Пример #15
0
        //methods
        private static void Initialize()
        {
            if (_initialized)
            {
                if (_initializeException != null)
                {
                    throw _initializeException;
                }
            }
            else
            {
                if (_initializeException != null)
                {
                    throw _initializeException;
                }
                lock (_lock)
                {
                    if (_initialized)
                    {
                        if (_initializeException != null)
                        {
                            throw _initializeException;
                        }
                    }
                    else
                    {
                        try
                        {
                            DataModelSection section = ConfigurationManager.GetSection(SectionName) as DataModelSection;
                            _providers = new ProviderCollection();
                            //fill providers collection
                            foreach (ProviderSettings settings in section.Providers)
                            {
                                _providers.Add(InstantiateProvider(settings, typeof(MetadataProvider)));
                            }
                            _provider = (MetadataProvider)_providers[section.DefaultProvider];

                            _typeMappings = section.TypeMappings;
                        }
                        catch (Exception exception)
                        {
                            _initializeException = exception;
                            throw;
                        }
                        _initialized = true;
                    }
                }
            }
        }
Пример #16
0
        protected StorageConfiguration GetPersistenceConfiguration()
        {
            StorageConfiguration storageConfiguration = DomainObjectsConfiguration.Current.Storage;

            if (storageConfiguration.DefaultStorageProviderDefinition == null)
            {
                ProviderCollection <StorageProviderDefinition> storageProviderDefinitionCollection = new ProviderCollection <StorageProviderDefinition> ();
                RdbmsProviderDefinition providerDefinition = new RdbmsProviderDefinition("Default", new SqlStorageObjectFactory(), "Initial Catalog=DatabaseName;");
                storageProviderDefinitionCollection.Add(providerDefinition);

                storageConfiguration = new StorageConfiguration(storageProviderDefinitionCollection, providerDefinition);
            }

            return(storageConfiguration);
        }
Пример #17
0
        public static ProviderCollection Search(SearchFilter SearchKey)
        {
            ProviderCollection collection = new ProviderCollection();

            using (var reader = SqlHelper.ExecuteReader("ARProvider_Search", SearchFilterManager.SqlSearchParam(SearchKey)))
            {
                while (reader.Read())
                {
                    Provider obj = new Provider();
                    obj = GetItemFromReader(reader);
                    collection.Add(obj);
                }
            }
            return(collection);
        }
Пример #18
0
        static public void AddProvider(this ProviderCollection pc, ProviderBase provider)
        {
            bool prevValue = (bool)ProviderCollectionReadOnlyField.GetValue(pc);

            if (prevValue)
            {
                ProviderCollectionReadOnlyField.SetValue(pc, false);
            }

            pc.Add(provider);

            if (prevValue)
            {
                ProviderCollectionReadOnlyField.SetValue(pc, true);
            }
        }
Пример #19
0
        public static void AddTo(this ProviderBase provider, ProviderCollection pc)
        {
            var prevValue = (bool)_providerCollectionReadOnlyField.GetValue(pc);

            if (prevValue)
            {
                _providerCollectionReadOnlyField.SetValue(pc, false);
            }

            pc.Add(provider);

            if (prevValue)
            {
                _providerCollectionReadOnlyField.SetValue(pc, true);
            }
        }
Пример #20
0
        public void SetUp()
        {
            try
            {
                var serviceLocator = DefaultServiceLocator.Create();
                serviceLocator.RegisterSingle <ISecurityProvider> (() => new NullSecurityProvider());
                serviceLocator.RegisterSingle <IPrincipalProvider> (() => new NullPrincipalProvider());
                ServiceLocator.SetLocatorProvider(() => serviceLocator);

                var providers = new ProviderCollection <StorageProviderDefinition>();
                providers.Add(new RdbmsProviderDefinition("SecurityManager", new SecurityManagerSqlStorageObjectFactory(), TestDomainConnectionString));
                var storageConfiguration = new StorageConfiguration(providers, providers["SecurityManager"]);
                storageConfiguration.StorageGroups.Add(new StorageGroupElement(new SecurityManagerStorageGroupAttribute(), "SecurityManager"));

                DomainObjectsConfiguration.SetCurrent(new FakeDomainObjectsConfiguration(storage: storageConfiguration));

                var rootAssemblyFinder = new FixedRootAssemblyFinder(new RootAssembly(typeof(BaseSecurityManagerObject).Assembly, true));
                var assemblyLoader     = new FilteringAssemblyLoader(ApplicationAssemblyLoaderFilter.Instance);
                var assemblyFinder     = new CachingAssemblyFinderDecorator(new AssemblyFinder(rootAssemblyFinder, assemblyLoader));
                ITypeDiscoveryService typeDiscoveryService = new AssemblyFinderTypeDiscoveryService(assemblyFinder);

                MappingConfiguration.SetCurrent(
                    new MappingConfiguration(
                        new MappingReflector(
                            typeDiscoveryService,
                            new ClassIDProvider(),
                            new ReflectionBasedMemberInformationNameResolver(),
                            new PropertyMetadataReflector(),
                            new DomainModelConstraintProvider(),
                            MappingReflector.CreateDomainObjectCreator()),
                        new PersistenceModelLoader(new StorageGroupBasedStorageProviderDefinitionFinder(DomainObjectsConfiguration.Current.Storage))));

                SqlConnection.ClearAllPools();

                DatabaseAgent masterAgent = new DatabaseAgent(MasterConnectionString);
                masterAgent.ExecuteBatchFile("SecurityManagerCreateDB.sql", false, DatabaseConfiguration.GetReplacementDictionary());
                DatabaseAgent databaseAgent = new DatabaseAgent(TestDomainConnectionString);
                databaseAgent.ExecuteBatchFile("SecurityManagerSetupDB.sql", true);
                databaseAgent.ExecuteBatchFile("SecurityManagerSetupConstraints.sql", true);
                databaseAgent.ExecuteBatchFile("SecurityManagerSetupDBSpecialTables.sql", true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Пример #21
0
        public void SetUp()
        {
            try
            {
                var providers = new ProviderCollection <StorageProviderDefinition>();
                providers.Add(new RdbmsProviderDefinition(StubStorageProvider.StorageProviderID, new StubStorageFactory(), "NonExistingRdbms"));
                var storageConfiguration = new StorageConfiguration(providers, providers[StubStorageProvider.StorageProviderID]);
                DomainObjectsConfiguration.SetCurrent(new FakeDomainObjectsConfiguration(storage: storageConfiguration));

                Dev.Null = MappingConfiguration.Current;
            }
            catch (Exception ex)
            {
                Console.WriteLine("SetUpFixture failed: " + ex);
                Console.WriteLine();
                throw;
            }
        }
Пример #22
0
        // intentionally hide base implmentation
        public static void InstantiateProviders(ProviderSettingsCollection pProviderSettings, ProviderCollection pProviders, Type pType)
        {
            myLogger.Debug("InstantiateProviders - entry");
            try
            {
                foreach (ProviderSettings settings in pProviderSettings)
                {
                    myLogger.Debug("Adding - adding provider");
                    pProviders.Add(ADSProviderManager.InstantiateProvider(settings, pType));
                    myLogger.Debug("InstantiateProviders - added provider");
                }
            }
            catch (Exception ex)
            {
                myLogger.Debug("InstantiateProviders caught exception - " + ex.Message);
                throw;
            }

            myLogger.Debug("InstantiateProviders - exit");
        }
Пример #23
0
        public static ProviderCollection GetAllItem(int CompanyID)
        {
            ProviderCollection collection = new ProviderCollection();

            var sqlParams = new SqlParameter[]
            {
                new SqlParameter("@CompanyID", CompanyID),
            };

            using (var reader = SqlHelper.ExecuteReader("ARProvider_GetAll", sqlParams))
            {
                while (reader.Read())
                {
                    Provider obj = new Provider();
                    obj = GetItemFromReader(reader);
                    collection.Add(obj);
                }
            }
            return(collection);
        }
Пример #24
0
        public static ProviderCollection GetbyUser(string CreatedUser, int CompanyID)
        {
            ProviderCollection collection = new ProviderCollection();
            Provider           obj;
            var sqlParams = new SqlParameter[]
            {
                new SqlParameter("@CreatedUser", CreatedUser),
                new SqlParameter("@CompanyID", CompanyID),
            };

            using (var reader = SqlHelper.ExecuteReader("ARProvider_GetAll_byUser", sqlParams))
            {
                while (reader.Read())
                {
                    obj = GetItemFromReader(reader);
                    collection.Add(obj);
                }
            }
            return(collection);
        }
        /// <summary>
        /// Creates an object from the XmlNode passed to this ProviderConfigurationSectionHandler by the Configuration Runtime.
        /// This method is not intended for external use. It is only public due to the interface limitations implied by the C#
        /// language specifications. We'll use interface hiding to hide it unless explicitly cast to the IConfigurationSectionHandler interface.
        /// </summary>
        /// <returns></returns>
        object IConfigurationSectionHandler.Create(object parent, object configContext, System.Xml.XmlNode section)
        {
            // create a collection for the providers defined in this config section
            ProviderCollection providers = this.GetProviderCollection();

            // grab all of the providers defined
            XmlNodeList nodes = section.SelectNodes("Provider");

            foreach (XmlNode node in nodes)
            {
                // grab the required 'Type' attribute
                XmlAttribute typeAttribute = XmlUtilities.GetAttribute(node, "Type", true);

                // load the type from the attribute's value
                Type type = TypeUtilities.GetTypeFromFullyQualifiedName(typeAttribute.Value, true, true);

                // create the provider from the type and any additional info stored in the node
                providers.Add(this.CreateProvider(node, type));
            }

            // return the collection of providers
            return(providers);
        }
        private static void InstantiateProviders(ProviderSettingsCollection configProviders, ProviderCollection providers, Type providerType)
        {
            foreach (ProviderSettings configProvider in configProviders)
            {
                Type type = Type.GetType(configProvider.Type, true, true);
                if (!typeof(Resources.ResourceProvider).IsAssignableFrom(type))
                {
                    throw new ArgumentException(String.Format(CultureInfo.CurrentCulture,
                                                              Hasseware.Properties.Resources.Provider_must_implement_type, typeof(Resources.ResourceProvider)));
                }

                var resourceProvider = (Resources.ResourceProvider)Activator.CreateInstance(type);

                NameValueCollection parameters          = configProvider.Parameters;
                NameValueCollection nameValueCollection = new NameValueCollection(parameters.Count, StringComparer.Ordinal);

                foreach (string parameter in parameters)
                {
                    nameValueCollection[parameter] = parameters[parameter];
                }
                resourceProvider.Initialize(configProvider.Name, nameValueCollection);
                providers.Add(resourceProvider);
            }
        }
Пример #27
0
        public void SetUp()
        {
            try
            {
                ProviderCollection <StorageProviderDefinition> providers = new ProviderCollection <StorageProviderDefinition>();
                providers.Add(new RdbmsProviderDefinition("Development.Data.DomainObjects", new SqlStorageObjectFactory(), "ConnectionString"));
                StorageConfiguration storageConfiguration = new StorageConfiguration(providers, providers["Development.Data.DomainObjects"]);

                DomainObjectsConfiguration.SetCurrent(
                    new FakeDomainObjectsConfiguration(
                        new MappingLoaderConfiguration(),
                        storageConfiguration,
                        new QueryConfiguration()));

                var rootAssemblyFinder = new FixedRootAssemblyFinder(new RootAssembly(typeof(TestDomainObject).Assembly, true));
                var assemblyLoader     = new FilteringAssemblyLoader(ApplicationAssemblyLoaderFilter.Instance);
                var assemblyFinder     = new CachingAssemblyFinderDecorator(new AssemblyFinder(rootAssemblyFinder, assemblyLoader));
                ITypeDiscoveryService typeDiscoveryService = new AssemblyFinderTypeDiscoveryService(assemblyFinder);

                MappingConfiguration.SetCurrent(
                    new MappingConfiguration(
                        new MappingReflector(
                            typeDiscoveryService,
                            new ClassIDProvider(),
                            new ReflectionBasedMemberInformationNameResolver(),
                            new PropertyMetadataReflector(),
                            new DomainModelConstraintProvider(),
                            new ThrowingDomainObjectCreator()),
                        new PersistenceModelLoader(new StorageGroupBasedStorageProviderDefinitionFinder(DomainObjectsConfiguration.Current.Storage))));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Пример #28
0
        protected StorageConfiguration GetPersistenceConfiguration()
        {
            StorageConfiguration storageConfiguration = DomainObjectsConfiguration.Current.Storage;
              if (storageConfiguration.DefaultStorageProviderDefinition == null)
              {
            ProviderCollection<StorageProviderDefinition> storageProviderDefinitionCollection = new ProviderCollection<StorageProviderDefinition> ();
            RdbmsProviderDefinition providerDefinition = new RdbmsProviderDefinition ("Default", new SqlStorageObjectFactory (), "Initial Catalog=DatabaseName;");
            storageProviderDefinitionCollection.Add (providerDefinition);

            storageConfiguration = new StorageConfiguration (storageProviderDefinitionCollection, providerDefinition);
              }

              return storageConfiguration;
        }
Пример #29
0
        protected override void EnsureWellKownProviders(ProviderCollection collection)
        {
            base.EnsureWellKownProviders(collection);

            collection.Add(new FakeWellKnownProvider(_wellKnownProviderID, new NameValueCollection()));
        }
        private void Initialize()
        {
            try
            {

                m_providerCollection = new ProviderCollection();
                ProviderConfigurationSection qc = null;

                bool defaultMode = false;
                //Get the feature's configuration info
                qc = (ProviderConfigurationSection)ConfigurationManager.GetSection("UserManagerProvider");
                if (qc == null)
                {
                    defaultMode = true;
                }
                if (defaultMode)
                {
                    if (SystemConfiguration.ApplicationName == "Example")
                    {
                        m_defaultProvider = new MockProvider();
                    }
                    else
                    {
                        m_defaultProvider = new AspNetProvider();
                    }
                    m_providerCollection.Add(m_defaultProvider);
                }
                else
                {
                    if (qc.DefaultProvider == null || qc.Providers == null || qc.Providers.Count < 1)
                    {
                        throw new System.Configuration.Provider.ProviderException("You must specify a valid default provider.");
                    }

                    //Instantiate the providers
                    ProvidersHelper.InstantiateProviders(qc.Providers, m_providerCollection, typeof(ProviderBase));
                    m_defaultProvider = m_providerCollection[qc.DefaultProvider];
                    if (m_defaultProvider == null)
                    {
                        throw new ConfigurationErrorsException("You must specify a default provider for the feature.",
                            qc.ElementInformation.Properties["defaultProvider"].Source,
                            qc.ElementInformation.Properties["defaultProvider"].LineNumber);
                    }
                }
            }
            catch (Exception ex)
            {
                //initializationException = ex;
                isInitialized = false;
                throw ex;
            }

            isInitialized = true; //error-free initialization
        }