public AppConfigDependencyResolver( AppConfig appConfig, InternalConfiguration internalConfiguration, ProviderServicesFactory providerServicesFactory = null) { DebugCheck.NotNull(appConfig); _appConfig = appConfig; _internalConfiguration = internalConfiguration; _providerServicesFactory = providerServicesFactory ?? new ProviderServicesFactory(); }
internal AppConfig( ConnectionStringSettingsCollection connectionStrings, KeyValueConfigurationCollection appSettings, EntityFrameworkSection entityFrameworkSettings, ProviderServicesFactory providerServicesFactory = null) { DebugCheck.NotNull(connectionStrings); _connectionStrings = connectionStrings; _appSettings = appSettings ?? new KeyValueConfigurationCollection(); _entityFrameworkSettings = entityFrameworkSettings ?? new EntityFrameworkSection(); _providerServicesFactory = providerServicesFactory ?? new ProviderServicesFactory(); _providerServices = new Lazy<IList<NamedDbProviderService>>( () => _entityFrameworkSettings .Providers .OfType<ProviderElement>() .Select( e => new NamedDbProviderService( e.InvariantName, _providerServicesFactory.GetInstance(e.ProviderTypeName, e.InvariantName))) .ToList()); if (_entityFrameworkSettings.DefaultConnectionFactory.ElementInformation.IsPresent) { _defaultConnectionFactory = new Lazy<IDbConnectionFactory>( () => { var setting = _entityFrameworkSettings.DefaultConnectionFactory; try { var type = setting.GetFactoryType(); var args = setting.Parameters.GetTypedParameterValues(); return (IDbConnectionFactory)Activator.CreateInstance(type, args); } catch (Exception ex) { throw new InvalidOperationException( Strings.SetConnectionFactoryFromConfigFailed(setting.FactoryTypeName), ex); } }, isThreadSafe: true); } else { _defaultConnectionFactory = _defaultDefaultConnectionFactory; } }