/// <summary>
        /// Initializes a new instance of the ProxyConfigurationService class.
        /// </summary>
        /// <param name="storage">The reference to the proxy settings storage.</param>
        /// <exception cref="ArgumentNullException"><paramref name="storage"/> is a null
        /// reference.</exception>
        public ProxyConfigurationService(
            IGenericStorage <ProxySettings> storage,
            IHostNameValidator validator)
        {
            if (storage == null)
            {
                throw new ArgumentNullException("storage");
            }

            if (validator == null)
            {
                throw new ArgumentNullException("validator");
            }

            _proxySettingsStorage = storage;
            _validator            = validator;
            this.Settings         = _proxySettingsStorage.Load();
        }
        /// <summary>
        /// Initializes a new instance of the ProxyConfigurationService class.
        /// </summary>
        /// <param name="storage">The reference to the proxy settings storage.</param>
        /// <exception cref="ArgumentNullException"><paramref name="storage"/> is a null
        /// reference.</exception>
        public ProxyConfigurationService(
            IGenericStorage<ProxySettings> storage,
            IHostNameValidator validator)
        {
            if (storage == null)
            {
                throw new ArgumentNullException("storage");
            }

            if (validator == null)
            {
                throw new ArgumentNullException("validator");
            }

            _proxySettingsStorage = storage;
            _validator = validator;
            this.Settings = _proxySettingsStorage.Load();
        }
        /// <summary>
        /// Initializes a new instance of the ApplicationProxySettingsStorage class.
        /// </summary>
        /// <param name="storage">The reference to the base proxy storage settings.</param>
        public ApplicationProxySettingsStorage(IGenericStorage <ProxySettings> storage)
        {
            Debug.Assert(storage != null);

            _baseStorage = storage;
        }