private byte[] SerializeControlFrameHeaders(ProtocolHeaders frameHeaders)
{
var headers = new List<byte>(256);
headers.AddRange(BinaryHelper.Int32ToBytes(frameHeaders.Count));
foreach (KeyValuePair<string, string> pair in frameHeaders)
{
byte[] nameBin = Encoding.UTF8.GetBytes(pair.Key);
headers.AddRange(BinaryHelper.Int32ToBytes(nameBin.Length));
headers.AddRange(nameBin);
byte[] valBin = Encoding.UTF8.GetBytes(pair.Value);
headers.AddRange(BinaryHelper.Int32ToBytes(valBin.Length));
headers.AddRange(valBin);
}
return headers.ToArray();
}