/// <summary>
 /// Initializes a new instance of the <see cref="ServiceDiscoveryHttpClientHandler"/> class.
 /// </summary>
 public ServiceDiscoveryHttpClientHandler(IServiceDiscovery serviceDiscovery, IFeignClient feignClient, IGlobalFeignClientPipelineBuilder globalFeignClientPipeline, IDistributedCache distributedCache, ILogger logger)
 {
     _serviceResolve            = new RandomServiceResolve(logger);
     _feignClient               = feignClient;
     _globalFeignClientPipeline = globalFeignClientPipeline as GlobalFeignClientPipelineBuilder;
     _logger              = logger;
     _serviceDiscovery    = serviceDiscovery;
     _distributedCache    = distributedCache;
     ShouldResolveService = true;
 }
        /// <summary>
        /// Gets the specified service Pipeline
        /// </summary>
        /// <param name="globalFeignClientPipelineBuilder"></param>
        /// <param name="serviceId"></param>
        /// <returns></returns>
        public static IFeignClientPipelineBuilder Service(this IGlobalFeignClientPipelineBuilder globalFeignClientPipelineBuilder, string serviceId)
        {
            if (string.IsNullOrWhiteSpace(serviceId))
            {
                throw new ArgumentException(nameof(serviceId));
            }
            GlobalFeignClientPipelineBuilder pipelineBuilder = globalFeignClientPipelineBuilder as GlobalFeignClientPipelineBuilder;

            if (pipelineBuilder == null)
            {
                throw new NotSupportedException();
            }
            return(pipelineBuilder.GetOrAddServicePipeline(serviceId));
        }