dataprovidermanager.cs

来自「BugNET is an issue tracking and project 」· CS 代码 · 共 76 行

CS
76
字号
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Web.Configuration;
using System.Configuration.Provider;

namespace BugNET.DataAccessLayer
{
    /// <summary>
    /// Data provider manager class
    /// </summary>
    public class DataProviderManager
    {

        private static DataProvider defaultProvider;
        private static DataProviderCollection providers;

        /// <summary>
        /// Initializes the <see cref="DataProviderManager"/> class.
        /// </summary>
        static DataProviderManager()
        {
            Initialize();
        }

        /// <summary>
        /// Initializes this instance.
        /// </summary>
        private static void Initialize()
        {
            DataProviderConfiguration configuration = (DataProviderConfiguration)ConfigurationManager.GetSection("DataProvider");

            if (configuration == null || configuration.DefaultProvider == null || configuration.Providers == null || configuration.Providers.Count < 1)
                throw new ProviderException("You must specify a valid default data provider.");           

            providers = new DataProviderCollection();
            ProvidersHelper.InstantiateProviders(configuration.Providers, providers, typeof(DataProvider));
            providers.SetReadOnly();
            defaultProvider = providers[configuration.DefaultProvider];

            if (defaultProvider == null)
            {
                throw new ConfigurationErrorsException(
                    "You must specify a default provider for the feature.",
                    configuration.ElementInformation.Properties["defaultProvider"].Source,
                    configuration.ElementInformation.Properties["defaultProvider"].LineNumber);
            }
        }

        /// <summary>
        /// Gets the provider.
        /// </summary>
        /// <value>The provider.</value>
        public static DataProvider Provider
        {
            get
            {
                return defaultProvider;
            }
        }

        /// <summary>
        /// Gets the providers.
        /// </summary>
        /// <value>The providers.</value>
        public static DataProviderCollection Providers
        {
            get
            {
                return providers;
            }
        }  
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?