// Method that returns the corresponding string format
        // for file to save based on SERIALIZATION_TYPE param
        private string getFileFormat(SERIALIZATION_TYPE serializationType)
        {
            switch (serializationType)
            {
            default:
            case SERIALIZATION_TYPE.BINARY:
                return(".bin");

            case SERIALIZATION_TYPE.JSON_BSON:
                return(".bson");

            case SERIALIZATION_TYPE.JSON_NET:
            case SERIALIZATION_TYPE.JSON_UNITY:
                return(".json");

            case SERIALIZATION_TYPE.XML:
                return(".xml");
            }
        }
        private ISerializer GetSerializerWithIndex(SERIALIZATION_TYPE serializerType)
        {
            switch (serializerType)
            {
            default:
            case SERIALIZATION_TYPE.BINARY:
                return(new BinarySerializer());

            case SERIALIZATION_TYPE.JSON_BSON:
                return(new JsonDotNetBSONSerializer());

            case SERIALIZATION_TYPE.JSON_NET:
                return(new JsonDotNetSerializer());

            case SERIALIZATION_TYPE.JSON_UNITY:
                return(new UnityJsonSerializer());

            case SERIALIZATION_TYPE.XML:
                return(new XmlSerializerFree());
            }
        }
예제 #3
0
        /// <summary>
        /// Generic method used for saving data
        /// </summary>
        /// <param name="dataToStore">Data to store</param>
        /// <typeparam name="T">Typeof data to store</typeparam>
        public static void SaveToFile <T>(T dataToStore, string fileFullPath, SERIALIZATION_TYPE serializerType = SERIALIZATION_TYPE.JSON_NET)
        {
            // Get the fileformat from filename, if it is invalid, throuhg an error
            // and return the null equivalent for T
            string fileExtension = getFileFormatFromName(fileFullPath);

            if (fileExtension == null)
            {
                Debug.LogError("The file " + fileFullPath + " has an invalid file format. No File saved.");
                return;
            }

            try {
                //string serializedData = JsonUtility.ToJson(dataToStore, true);
                string serializedData = Serializer.Serialize(dataToStore, GetSerializerWithIndex(serializerType));
                File.WriteAllText(fileFullPath, serializedData);
            }
            catch (Exception ex) {
                Debug.LogWarning("File writing error: " + ex.Message);
            }
        }