public static Endpoint Read(ThriftProtocol iprot) { var endpoint = new Endpoint(); iprot.IncrementRecursionDepth(); try { iprot.ReadStructBegin(); while (true) { var field = iprot.ReadFieldBegin(); if (field.Type == TType.Stop) { break; } switch (field.ID) { case 1: if (field.Type == TType.I32) { endpoint.IPAddress = new IPAddress((long)iprot.ReadI32()); } else { iprot.Skip(field.Type); } break; case 2: if (field.Type == TType.I16) { endpoint.Port = (ushort)iprot.ReadI16(); } else { iprot.Skip(field.Type); } break; case 3: if (field.Type == TType.String) { endpoint.ServiceName = iprot.ReadString(); } else { iprot.Skip(field.Type); } break; default: iprot.Skip(field.Type); break; } iprot.ReadFieldEnd(); } iprot.ReadStructEnd(); } finally { iprot.DecrementRecursionDepth(); } return(endpoint); }