Ejemplo n.º 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ServiceDiscoveryHttpClientHandler{TService}"/> class.
 /// </summary>
 public ServiceDiscoveryHttpClientHandler(FeignClientHttpProxy <TService> feignClient, IServiceDiscovery serviceDiscovery, ICacheProvider serviceCacheProvider, ILogger logger) : base(feignClient, logger)
 {
     _serviceResolve       = new RandomServiceResolve(logger);
     _serviceDiscovery     = serviceDiscovery;
     _serviceCacheProvider = serviceCacheProvider;
     ShouldResolveService  = true;
 }
Ejemplo n.º 2
0
        protected virtual MethodInfo GetInvokeMethod(Type serviceType, RequestMappingBaseAttribute requestMapping, Type returnType, bool async)
        {
            MethodInfo httpClientMethod;
            bool       isGeneric = !(returnType == null || returnType == typeof(void) || returnType == typeof(Task));

            if (isGeneric)
            {
                httpClientMethod = async ? FeignClientHttpProxy <object> .GetHttpSendAsyncGenericMethod(serviceType) : FeignClientHttpProxy <object> .GetHttpSendGenericMethod(serviceType);
            }
            else
            {
                httpClientMethod = async ? FeignClientHttpProxy <object> .GetHttpSendAsyncMethod(serviceType) : FeignClientHttpProxy <object> .GetHttpSendMethod(serviceType);
            }
            if (isGeneric)
            {
                return(httpClientMethod.MakeGenericMethod(returnType));
            }
            return(httpClientMethod);
        }