public void Save(T data) { lock (_lock) { if (data != null) { FileInfo fi = new FileInfo(_filename); if (fi.Directory.Exists == false) { fi.Directory.Create(); } string tmpFile = _filename + ".tmp"; //var settings = new System.Xml.XmlWriterSettings(); //settings.Indent = true; //using (var writer = System.Xml.XmlDictionaryWriter.Create(_filename, settings)) //{ // var x = new Utils.XMLSerializer(); // x.WriteObject(writer, data); //} Utils.XMLSerializer x = new Utils.XMLSerializer(); XmlDoc doc = x.WriteObjectToXmlDoc(data); doc.Save(tmpFile); File.Copy(tmpFile, _filename, true); File.Delete(tmpFile); } } }
public T Load() { lock (_lock) { if (File.Exists(_filename) == false) { throw new FileNotFoundException("File not found", _filename); } try { Utils.XMLSerializer x = new Utils.XMLSerializer(); return(x.ReadObjectFromFile(_filename) as T); } catch (ThreadAbortException) { throw; } catch (Exception) { if (File.Exists(_filename + ".invalid")) { File.Delete(_filename + ".invalid"); } File.Move(_filename, _filename + ".invalid"); return(new T()); } } }
public static void Save() { lock (_lock) { var x = new Utils.XMLSerializer(); x.WriteObjectToFile(Current, Path); } }
private void Load() { lock (_lock) { if (DateTime.Now.Subtract(_lastModifiedLastChecked).TotalSeconds < 1.0) { return; } _lastModifiedLastChecked = DateTime.Now; DateTime lastModified = DateTime.MinValue; bool fileExists = File.Exists(_xmlFilename); if (fileExists) { lastModified = File.GetLastWriteTimeUtc(_xmlFilename); } if ((_data == null) || (lastModified > _lastModified)) { if (fileExists) { _lastModified = lastModified; try { using (StreamReader sr = new StreamReader(_xmlFilename)) { string content = sr.ReadToEnd(); Utils.XMLSerializer x = new Utils.XMLSerializer(); _data = x.ReadObject(content) as T; } } catch (ThreadAbortException) { } catch (Exception) { if (File.Exists(_xmlFilename + ".invalid")) { File.Delete(_xmlFilename + ".invalid"); } File.Move(_xmlFilename, _xmlFilename + ".invalid"); _data = new T(); } } else { _data = new T(); } } } }
public void Save() { lock (_lock) { if (_data != null) { FileInfo fi = new FileInfo(_xmlFilename); if (fi.Directory.Exists == false) { fi.Directory.Create(); } var settings = new System.Xml.XmlWriterSettings(); settings.Indent = true; using (var writer = System.Xml.XmlDictionaryWriter.Create(_xmlFilename, settings)) { Utils.XMLSerializer x = new Utils.XMLSerializer(); x.WriteObject(writer, _data); } _lastModified = File.GetLastWriteTimeUtc(_xmlFilename); } } }