public byte[] Serialize()
{
List<byte> result = new List<byte>();
if (this.CountType == CountByte.TwoBytesCount)
{
result.AddRange(BitConverter.GetBytes((ushort)this.ActionLength));
}
else if (this.CountType == CountByte.FourBytesCount)
{
result.AddRange(BitConverter.GetBytes((uint)this.ActionLength));
}
result.Add((byte)this.ActionType);
result.AddRange(BitConverter.GetBytes(this.ActionFlavor));
result.AddRange(BitConverter.GetBytes(this.ActionFlags));
if (this.ActionDataValue.Serialize() != null)
{
result.AddRange(this.ActionDataValue.Serialize());
}
return result.ToArray();
}