/// <summary>
        /// 为Htpp客户端添加断路器包装策略
        /// </summary>
        /// <param name="services">服务收藏</param>
        /// <param name="httpClientName">客户端名称</param>
        /// <param name="options">选项配置回调</param>
        /// <returns>服务收藏</returns>
        public static IServiceCollection AddHttpClientForBreakerWrapPolicy <TException>(this IServiceCollection services, string httpClientName = NetworkUtil.DEFAULT_HTTP_CLIENT_NAME, Action <BreakerWrapPolicyOptions <HttpResponseMessage> > options = null)
            where TException : Exception
        {
            var config = new BreakerWrapPolicyOptions <HttpResponseMessage>();

            config.GetResult = () =>
            {
                return(new HttpResponseMessage()
                {
                    Content = new StringContent(PolicyUtil.DEFAULT_FALLBACK_RETURN_STRING)
                });
            };
            if (options != null)
            {
                options(config);
            }

            var asyncPolicy = PolicyUtil.BuilderBreakerWrapPollicyAsync <HttpResponseMessage, TException>(op =>
            {
                op.Breaker     = config.Breaker;
                op.GetResult   = config.GetResult;
                op.Id          = config.Id;
                op.Result      = config.Result;
                op.RetryNumber = config.RetryNumber;
                op.Timeout     = config.Timeout;
            });

            services.AddHttpClient(httpClientName)
            .AddPolicyHandler(asyncPolicy);

            return(services);
        }