public static void PackImaginaryObjectToFile(string path, ImaginaryObject toStore)
        {
            Encoding encoding = Encoding.UTF8;

            Utilities.CreateEmptyFile(path);

            using (var fileStream = new FileStream(path, FileMode.Create))
#if DEBUG
                using (var writer = new BinaryWriter(fileStream, encoding))
#else
                using (LZ4EncoderStream compressionStream = LZ4Stream.Encode(fileStream))
                    using (BinaryWriter writer = new BinaryWriter(compressionStream, encoding))
#endif
                {
                    // Write the current CrystalClear version to the file.
                    writer.Write(CrystalClearInformation.CrystalClearVersion.ToString());

                    // Write the constructor data.
                    toStore.WriteThis(writer);

                    // Save the file.
                    writer.Flush();
                }
        }
 protected override void WriteConstructionInfo(BinaryWriter writer)
 {
     ImaginaryObjectBase.WriteThis(writer);
 }