private async Task Send(RPCMethodId id, AddQueueRequest obj) { if (client != null) { var data = new List <byte[]>(); var ms = new MemoryStream(); var serializer = new DataContractSerializer(typeof(AddQueueRequest)); serializer.WriteObject(ms, obj); data.Add(ms.ToArray()); var objbyes = RPCData.CombineChunks(data); byte[] bytes = RPCData.Combine( BitConverter.GetBytes((short)id), BitConverter.GetBytes(objbyes.Length), objbyes); await client.GetStream().WriteAsync(bytes, 0, bytes.Length); } }
public static byte[] Serialize(RPCMethodId id, object obj) { Type type = ArgumentTypes[id]; if (type == null) { return(RPCData.Combine( BitConverter.GetBytes((short)id), BitConverter.GetBytes((int)0))); } var objbyes = Serialize(type, obj); //Debug.Print("Send: " + System.Text.Encoding.UTF8.GetString(objbyes)); return(RPCData.Combine( BitConverter.GetBytes((short)id), BitConverter.GetBytes(objbyes.Length), objbyes)); }