Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        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());
                }
            }
        }
Ejemplo n.º 3
0
 public static void Save()
 {
     lock (_lock)
     {
         var x = new Utils.XMLSerializer();
         x.WriteObjectToFile(Current, Path);
     }
 }
Ejemplo n.º 4
0
        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();
                    }
                }
            }
        }
Ejemplo n.º 5
0
        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);
                }
            }
        }