コード例 #1
0
 /// <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));
     }
 }
コード例 #2
0
        /// <summary>
        /// Tries the setup default provider.
        /// </summary>
        /// <param name="providerName">Name of the provider.</param>
        /// <param name="config">The config.</param>
        private static void TrySetupDefaultProvider(string providerName, Config.DataAccessSection config)
        {
            // try to setup from implemented set of providers
            switch (providerName.Trim())
            {
#if FB_BUILD
            case "FbDataProvider":
                _Provider = new Providers.FbDataProvider();
                break;
#endif
            case "MsOracleDataProvider":
                _Provider = new Providers.MsOracleDataProvider();
                break;

            case "MySqlDataProvider":
                _Provider = new Providers.MySqlDataProvider();
                break;

            case "OdbcDataProvider":
                _Provider = new Providers.OdbcDataProvider();
                break;

            case "OleDbDataProvider":
                _Provider = new Providers.OleDbDataProvider();
                break;

            case "OracleDataProvider":
                _Provider = new Providers.OracleDataProvider();
                break;

            case "SqlDataProvider":
                _Provider = new Providers.SqlDataProvider();
                break;

            default:
                // not found exit;
                return;
            }
            NameValueCollection __providerConfig = new NameValueCollection();
            __providerConfig["connectionName"]     = config.DefaultConnectionName;
            __providerConfig["defaultCommandType"] = config.DefaultCommandType;
            //__providerConfig["defaultRollbackBehaviour"] = config.DefaultRollbackBehaviour;
            _Provider.Initialize(config.DefaultProvider, __providerConfig);
            // add it to collection
            _Providers.Add(_Provider);
        }
コード例 #3
0
 /// <summary>
 ///
 /// </summary>
 private static void Initialize()
 {
     if (_IsInitialized)
     {
         ThrowOnInitializeException();
     }
     else
     {
         ThrowOnInitializeException();
         lock (_SyncLock) {
             if (_IsInitialized)
             {
                 ThrowOnInitializeException();
             }
             else
             {
                 System.Web.HttpContext context = System.Web.HttpContext.Current;
                 _TraceEnabled = (context != null && context.Trace.IsEnabled) ? true : false;
                 Config.DataAccessSection __section = (Config.DataAccessSection)
                                                      ConfigurationManager.GetSection(Config.DataAccessSection.SectionName);
                 _Providers = new DataProviderCollection();
                 string __defaultProvider;
                 // will not throw exception, but apply the general default provider rule
                 if (__section == null)
                 {
                     __section = new Config.DataAccessSection();
                 }
                 else
                 {
                     ProvidersHelper.Instantiate(
                         __section, _Providers, typeof(DataProvider));
                 }
                 // set default provider
                 __defaultProvider = __section.DefaultProvider;
                 _Provider         = _Providers[__defaultProvider];
                 if (_Provider == null)
                 {
                     // try to setup from implemented set of providers
                     TrySetupDefaultProvider(__defaultProvider, __section);
                 }
                 ThrowOnNullDefaultProvider();
                 _IsInitialized = true;
             }
         }
     }
 }
コード例 #4
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public static ProviderBase Instantiate(
            Config.DataAccessSection config, ProviderSettings settings, Type providerType)
        {
            ProviderBase __base = null;

            try {
                string __typeName = (settings.Type == null) ? null : settings.Type.Trim();
                if (string.IsNullOrEmpty(__typeName))
                {
                    throw new ArgumentException("Provider doesn't have type name");
                }
                Type __type = Type.GetType(__typeName); //ConfigUtil.GetType(text1, "type", settings);
                if (!providerType.IsAssignableFrom(__type))
                {
                    throw new ArgumentException(string.Format(
                                                    "Provider must implement type {0}", providerType.ToString()));
                }
                __base = (ProviderBase)Activator.CreateInstance(__type);
                NameValueCollection __parameters     = settings.Parameters;
                NameValueCollection __providerConfig = new NameValueCollection(__parameters.Count, StringComparer.InvariantCulture);
                foreach (string __param in __parameters)
                {
                    __providerConfig[__param] = __parameters[__param];
                }
                if (__providerConfig["connectionName"] == null)
                {
                    __providerConfig["connectionName"] = config.DefaultConnectionName;
                }
                if (__providerConfig["defaultCommandType"] == null)
                {
                    __providerConfig["defaultCommandType"] = config.DefaultCommandType;
                }
                //if (__providerConfig["defaultRollbackBehaviour"] == null) {
                //    __providerConfig["defaultRollbackBehaviour"] = config.DefaultRollbackBehaviour;
                //}
                __base.Initialize(settings.Name, __providerConfig);
            }
            catch (Exception exception1) {
                if (exception1 is ConfigurationException)
                {
                    throw;
                }
                throw new ConfigurationErrorsException(exception1.Message, settings.ElementInformation.Properties["type"].Source, settings.ElementInformation.Properties["type"].LineNumber);
            }
            return(__base);
        }