/// <summary>
        /// Sets inner HTTP handler by using builder to the current handler, if it is of type DelegatingHandler.
        /// </summary>
        /// <typeparam name="TInnerHandler">Inner HttpMessageHandler type to set.</typeparam>
        /// <param name="httpMessageHandlerBuilder">Inner HttpMessageHandler builder.</param>
        /// <returns>The same HTTP handler builder.</returns>
        public IHttpMessageHandlerBuilder WithInnerHandler <TInnerHandler>(
            Action <IInnerHttpMessageHandlerBuilder> httpMessageHandlerBuilder)
            where TInnerHandler : HttpMessageHandler, new()
        {
            var newHttpMessageHandlerBuilder = new InnerHttpMessageHandlerBuilder(new TInnerHandler());

            httpMessageHandlerBuilder(newHttpMessageHandlerBuilder);
            return(this.WithInnerHandler(newHttpMessageHandlerBuilder.AndProvideTheHandler()));
        }