public byte[] GetBytes() { MemoryStream stream = new MemoryStream(); BinaryWriter writer = new BinaryWriter(stream); switch (DataType) { case 2: writer.Write((double)(Data)); break; case 3: writer.Write((bool)(Data)); break; case 4: PackedInt.SaveToBin((PackedInt)Data, writer); break; case 5: writer.Write(Data.ToString()); break; case 6: PackedVariant.SaveToBin((PackedVariant)Data, writer); break; case 7: VariantDict.SaveToBin((VariantDict)Data, writer); break; } writer.Close(); BinaryReader reader = new BinaryReader(stream); long length = stream.Length; byte[] result = reader.ReadBytes((int)length); return(result); }