public Task <string> GetReponseAsync(string actionkey, string requestobject) { TTransport transport = new TSocket($"{Addr}", Port);; TProtocol protocol = new TBinaryProtocol(transport); tConnect.Client Client = new tConnect.Client(protocol); transport.Open(); return(Task.Run(() => { try { tReponseMsg result = Client.GetReponseAsync(new tRequestMsg() { ActionKey = actionkey, RequestObject = requestobject }); transport.Close(); protocol.Dispose(); Client.Dispose(); return Newtonsoft.Json.JsonConvert.SerializeObject(new { result.ErrorCode, result.ErrorInfo, result.Result }); //thrift hack 否则这货会自动增加一个属性返回值很难看 } catch (Exception ex) { return Newtonsoft.Json.JsonConvert.SerializeObject(new tReponseMsg() { ErrorCode = ex.HResult, ErrorInfo = ex.Message }); } })); }
public void Read(TProtocol iprot) { iprot.IncrementRecursionDepth(); try { TField field; iprot.ReadStructBegin(); while (true) { field = iprot.ReadFieldBegin(); if (field.Type == TType.Stop) { break; } switch (field.ID) { case 0: if (field.Type == TType.Struct) { Success = new tReponseMsg(); Success.Read(iprot); } else { TProtocolUtil.Skip(iprot, field.Type); } break; default: TProtocolUtil.Skip(iprot, field.Type); break; } iprot.ReadFieldEnd(); } iprot.ReadStructEnd(); } finally { iprot.DecrementRecursionDepth(); } }