/// <summary>
        /// Initializes the current implementation.
        /// </summary>
        /// <param name="configuration">The current configuration to use.</param>
        /// <returns></returns>
        public virtual Task InitializeAsync(WebApiClientConfiguration configuration)
        {
            if (configuration.Serializer == null)
            {
                throw new ArgumentNullException("Serializer must not be null!");
            }

            if (configuration.ErrorHandler == null)
            {
                throw new ArgumentNullException("ErrorHandler must not be null!");
            }

            if (configuration.RequestFactory == null)
            {
                throw new ArgumentNullException("RequestFactory must not be null!");
            }

            if (configuration.ResponseFactory == null)
            {
                throw new ArgumentNullException("ResponseFactory must not be null!");
            }

            _configuration = configuration;
            return(Task.CompletedTask);
        }
 /// <summary>
 /// The default constructor of the WebApiClient.
 /// </summary>
 public WebApiClient()
 {
     _configuration = WebApiClientConfiguration.Default;
 }