public override List<byte> SerializeToByteList()
{
BitWriter bitWriter = new BitWriter(21);
if (this.GUID == Guid.Empty)
{
bitWriter.AppendUInit32(0, 8);
}
else if (this.Value >= 0x00 && this.Value <= 0x1F)
{
bitWriter.AppendUInit32(ExtendedGUID5BitUintType, 3);
bitWriter.AppendUInit32(this.Value, 5);
bitWriter.AppendGUID(this.GUID);
}
else if (this.Value >= 0x20 && this.Value <= 0x3FF)
{
bitWriter.AppendUInit32(ExtendedGUID10BitUintType, 6);
bitWriter.AppendUInit32(this.Value, 10);
bitWriter.AppendGUID(this.GUID);
}
else if (this.Value >= 0x400 && this.Value <= 0x1FFFF)
{
bitWriter.AppendUInit32(ExtendedGUID17BitUintType, 7);
bitWriter.AppendUInit32(this.Value, 17);
bitWriter.AppendGUID(this.GUID);
}
else if (this.Value >= 0x20000 && this.Value <= 0xFFFFFFFF)
{
bitWriter.AppendUInit32(ExtendedGUID32BitUintType, 8);
bitWriter.AppendUInit32(this.Value, 32);
bitWriter.AppendGUID(this.GUID);
}
return new List<byte>(bitWriter.Bytes);
}