/// <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); }
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); }
/// <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); }
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); }