public byte[] Serialize()
{
// Set start index is 0
int index = 0;
byte[] serializeBuffer = new byte[this.Size()];
serializeBuffer[index++] = this.RopId;
serializeBuffer[index++] = this.LogonId;
serializeBuffer[index++] = this.InputHandleIndex;
serializeBuffer[index++] = this.OutputHandleIndex;
// 0 indicates start index
Array.Copy(BitConverter.GetBytes((ushort)this.MessageIdCount), 0, serializeBuffer, index, sizeof(ushort));
index += sizeof(ushort);
for (int i = 0; i < this.MessageIdCount; i++)
{
// 0 indicates start index
Array.Copy(BitConverter.GetBytes((ulong)this.MessageIds[i]), 0, serializeBuffer, index, sizeof(ulong));
index += sizeof(ulong);
}
serializeBuffer[index++] = this.CopyFlags;
serializeBuffer[index++] = this.SendOptions;
return serializeBuffer;
}