/// <summary> /// Gets the specified service Pipeline /// </summary> /// <param name="globalFeignClientPipeline"></param> /// <param name="serviceId"></param> /// <returns></returns> public static IFeignClientPipeline <object> Service(this IGlobalFeignClientPipeline globalFeignClientPipeline, string serviceId) { if (string.IsNullOrWhiteSpace(serviceId)) { throw new ArgumentException(nameof(serviceId)); } return(globalFeignClientPipeline.GetOrAddServicePipeline(serviceId)); }
public static void ReceivingQueryResult(this IGlobalFeignClientPipeline globalFeignClient) { globalFeignClient.ReceivingResponse += (sender, e) => { if (!typeof(QueryResult).IsAssignableFrom(e.ResultType)) { return; } if (e.ResultType == typeof(QueryResult)) { e.Result = new QueryResult() { StatusCode = e.ResponseMessage.StatusCode }; return; } if (e.ResultType.IsGenericType && e.ResultType.GetGenericTypeDefinition() == typeof(QueryResult <>)) { QueryResult queryResult; if (e.ResponseMessage.IsSuccessStatusCode) { string json = e.ResponseMessage.Content.ReadAsStringAsync().Result; object data = Newtonsoft.Json.JsonConvert.DeserializeObject(json, e.ResultType.GetGenericArguments()[0]); if (data == null) { queryResult = InvokeQueryResultConstructor(e.ResultType.GetGenericArguments()[0]); } else { queryResult = InvokeQueryResultConstructor(data.GetType(), data); } } else { queryResult = InvokeQueryResultConstructor(e.ResultType.GetGenericArguments()[0]); } queryResult.StatusCode = e.ResponseMessage.StatusCode; e.Result = queryResult; } }; }
/// <summary> /// Gets the specified service Pipeline /// </summary> /// <param name="globalFeignClientPipeline"></param> /// <returns></returns> public static IFeignClientPipeline <TService> Service <TService>(this IGlobalFeignClientPipeline globalFeignClientPipeline) { return(globalFeignClientPipeline.GetOrAddServicePipeline <TService>()); }