/// <summary>
        /// Changes default configuration for data transfer infrastructure.
        /// </summary>
        /// <param name="defaults">New default configuration.</param>
        public static void SetCurrent(IInfrastructureDefaults defaults)
        {
            Guard.NotNull("defaults", defaults);

            lock (updateLock)
                current = defaults;
        }
        /// <summary>
        /// Changes default configuration for data transfer infrastructure.
        /// </summary>
        /// <param name="defaults">New default configuration.</param>
        public static void SetCurrent(IInfrastructureDefaults defaults)
        {
            Guard.NotNull("defaults", defaults);

            lock (updateLock)
                current = defaults;
        }
        private static IInfrastructureDefaults GetCurrent()
        {
            if (current == null) lock (updateLock) if (current == null)
                current = new LibraryDefaults();

            return current;
        }
        private static IInfrastructureDefaults GetCurrent()
        {
            if (current == null)
            {
                lock (updateLock) if (current == null)
                    {
                        current = new LibraryDefaults();
                    }
            }

            return(current);
        }