/// <summary>
        /// Constructs a new configuration for a <see cref="DataFactory"/>.
        /// </summary>
        /// <param name="databaseConnectionString"></param>
        /// <param name="databaseType"></param>
        /// <param name="logger">If null, a <see cref="DevNullLogger{T}"/> will be used.</param>
        /// <param name="tempDiretory"></param>
        public DataFactoryConfiguration(String databaseConnectionString, DatabaseType databaseType, BaseLogger <DataFactory> logger = null, String tempDiretory = null)
        {
            if (XString.IsNullOrEmptyOrWhiteSpace(databaseConnectionString))
            {
                throw new ArgumentException(nameof(databaseConnectionString));
            }

            this.DatabaseConnectionString = databaseConnectionString;
            this.DatabaseType             = databaseType;
            this.Logger        = logger ?? new DevNullLogger <DataFactory>();
            this.TempDirectory = tempDiretory;
        }