Esempio n. 1
0
        /// <summary>
        /// Loads an object of type T from a file.
        /// </summary>
        /// <param name="filename">The full path of the file.</param>
        /// <param name="mode">The mode in which the object was saved.</param>
        /// <returns>Returns the loaded object, or default(T) if the object could not be loaded.</returns>
        public static T Load(string filename, SerialisationMode mode)
        {
            T result = default(T);

            try
            {
                switch (mode)
                {
                case SerialisationMode.Binary:
                {
                    Stream stream = new FileStream(filename, FileMode.Open);

                    try
                    {
                        IFormatter formatter = new BinaryFormatter();
                        result = (T)formatter.Deserialize(stream);
                    }
                    catch
                    {
                        result = default(T);
                    }

                    stream.Close();
                }
                break;

                case SerialisationMode.XML:
                {
                    XmlTextReader reader = new XmlTextReader(filename);

                    try
                    {
                        XmlSerializer s = new XmlSerializer(typeof(T));
                        result = (T)s.Deserialize(reader);
                    }
                    catch
                    {
                        result = default(T);
                    }

                    reader.Close();
                }
                break;
                }
            }
            catch (Exception)
            {
                result = default(T);
            }

            return(result);
        }
Esempio n. 2
0
        public static T Load(string filename, SerialisationMode mode)
        {
            T t = default(T);

            try
            {
                switch (mode)
                {
                case SerialisationMode.Binary:
                {
                    Stream fileStream = new FileStream(filename, FileMode.Open);
                    try
                    {
                        t = (T)(new BinaryFormatter()).Deserialize(fileStream);
                    }
                    catch
                    {
                        t = default(T);
                    }
                    fileStream.Close();
                    break;
                }

                case SerialisationMode.XML:
                {
                    XmlTextReader xmlTextReader = new XmlTextReader(filename);
                    try
                    {
                        t = (T)(new XmlSerializer(typeof(T))).Deserialize(xmlTextReader);
                    }
                    catch
                    {
                        t = default(T);
                    }
                    xmlTextReader.Close();
                    break;
                }
                }
            }
            catch (Exception)
            {
                t = default(T);
            }
            return(t);
        }
Esempio n. 3
0
        /// <summary>
        /// Saves an object of type T to a file.
        /// </summary>
        /// <param name="filename">The full path of the file.</param>
        /// <param name="obj">The object to be saved.</param>
        /// <param name="mode">The mode in which the object was saved.</param>
        /// <returns>Returns true if the object was saved successfully; false otherwise.</returns>
        public static bool Save(string filename, T obj, SerialisationMode mode)
        {
            bool ok = false;

            string temp_filename = filename + ".save";

            try
            {
                switch (mode)
                {
                case SerialisationMode.Binary:
                {
                    Stream stream = new FileStream(temp_filename, FileMode.Create);

                    try
                    {
                        IFormatter formatter = new BinaryFormatter();
                        formatter.Serialize(stream, obj);
                        stream.Flush();

                        ok = true;
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex);
                        ok = false;
                    }

                    stream.Close();
                }
                break;

                case SerialisationMode.XML:
                {
                    XmlTextWriter writer = new XmlTextWriter(temp_filename, Encoding.UTF8);
                    writer.Formatting = Formatting.Indented;

                    try
                    {
                        XmlSerializer s = new XmlSerializer(typeof(T));
                        s.Serialize(writer, obj);
                        writer.Flush();

                        ok = true;
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex);
                        ok = false;
                    }

                    writer.Close();
                }
                break;
                }
            }
            catch (Exception)
            {
                ok = false;
            }

            if (ok)
            {
                if (File.Exists(filename))
                {
                    File.Delete(filename);
                }

                File.Move(temp_filename, filename);
            }

            return(ok);
        }
Esempio n. 4
0
        public static bool Save(string filename, T obj, SerialisationMode mode)
        {
            bool   flag = false;
            string str  = string.Concat(filename, ".save");

            try
            {
                switch (mode)
                {
                case SerialisationMode.Binary:
                {
                    Stream fileStream = new FileStream(str, FileMode.Create);
                    try
                    {
                        (new BinaryFormatter()).Serialize(fileStream, obj);
                        fileStream.Flush();
                        flag = true;
                    }
                    catch (Exception exception)
                    {
                        Console.WriteLine(exception);
                        flag = false;
                    }
                    fileStream.Close();
                    break;
                }

                case SerialisationMode.XML:
                {
                    XmlTextWriter xmlTextWriter = new XmlTextWriter(str, Encoding.UTF8)
                    {
                        Formatting = Formatting.Indented
                    };
                    try
                    {
                        (new XmlSerializer(typeof(T))).Serialize(xmlTextWriter, obj);
                        xmlTextWriter.Flush();
                        flag = true;
                    }
                    catch (Exception exception1)
                    {
                        Console.WriteLine(exception1);
                        flag = false;
                    }
                    xmlTextWriter.Close();
                    break;
                }
                }
            }
            catch (Exception)
            {
                flag = false;
            }
            if (flag)
            {
                if (File.Exists(filename))
                {
                    File.Delete(filename);
                }
                File.Move(str, filename);
            }
            return(flag);
        }