public byte[] GetRawMessage() { IO.MemoryStream stream = new IO.MemoryStream(Message.HeaderLength); IO.BinaryWriter bw = new IO.BinaryWriter(stream); // write header header.Get(bw); // write arguments foreach (Pair pair in this.argumentList) { int key = (int)pair.First; byte[] val = (byte[])pair.Second; bw.Write(ASCIIEncoding.ASCII.GetBytes(string.Format("{0}", key))); bw.Write(Message.ArgumentSeperator); bw.Write(val); bw.Write(Message.ArgumentSeperator); } byte[] final = stream.ToArray(); bw.Close(); stream.Close(); return(final); }