public byte[] Serialize()
{
int index = 0;
byte[] serializeBuffer = new byte[this.Size()];
serializeBuffer[index++] = this.RopId;
serializeBuffer[index++] = this.LogonId;
serializeBuffer[index++] = this.InputHandleIndex;
Array.Copy(BitConverter.GetBytes((ushort)this.PropertyValueSize), 0, serializeBuffer, index, sizeof(ushort));
index += sizeof(ushort);
Array.Copy(BitConverter.GetBytes((ushort)this.PropertyValueCount), 0, serializeBuffer, index, sizeof(ushort));
index += sizeof(ushort);
for (int i = 0; i < this.PropertyValueCount; i++)
{
if (this.PropertyValues[i].Value != null)
{
Array.Copy(this.PropertyValues[i].Serialize(), 0, serializeBuffer, index, this.PropertyValues[i].Size());
index += this.PropertyValues[i].Size();
}
}
return serializeBuffer;
}