public byte[] Serialize()
{
int index = 0;
byte[] serializedBuffer = new byte[this.Size()];
serializedBuffer[index++] = this.RopId;
serializedBuffer[index++] = this.LogonId;
serializedBuffer[index++] = this.InputHandleIndex;
serializedBuffer[index++] = this.WantAsynchronous;
serializedBuffer[index++] = this.ReadFlags;
Array.Copy(BitConverter.GetBytes((short)this.MessageIdCount), 0, serializedBuffer, index, sizeof(ushort));
index += 2;
for (int i = 0; i < this.MessageIdCount; i++)
{
Array.Copy(BitConverter.GetBytes((ulong)this.MessageIds[i]), 0, serializedBuffer, index, sizeof(ulong));
index += sizeof(ulong);
}
return serializedBuffer;
}