public static void saveToCache(string cacheFolder, CPDataSerializable[] data)
        {
            //clean
            DirectoryInfo di = new DirectoryInfo(cacheFolder);

            foreach (FileInfo file in di.GetFiles())
            {
                file.Delete();
            }

            //fill
            CPDataSerializable.serializeToFolder(cacheFolder, data);
        }
        public static CPDataSerializable deserializeFrom(string path)
        {
            IFormatter formatter = new BinaryFormatter();
            Stream     stream    = new FileStream("MyFile.bin",
                                                  FileMode.Open,
                                                  FileAccess.Read,
                                                  FileShare.Read);
            CPDataSerializable obj = (CPDataSerializable)formatter.Deserialize(stream);

            stream.Close();

            return(obj);
        }
        public static CPDataSerializable[] getFromCache(string cacheFolder)
        {
            if (!(Directory.Exists(cacheFolder)))
            {
                return(new CPDataSerializable[0]);
            }

            string[]             files  = Directory.GetFiles(cacheFolder);
            CPDataSerializable[] output = new CPDataSerializable[files.Length];

            for (int i = 0; i < files.Length; i++)
            {
                output[i] = CPDataSerializable.deserializeFrom(files[i]);
            }

            return(output);
        }