예제 #1
0
        private static T LoadFromFile <T>()
        {
            string cfgFile = Path.Combine(sys.PathConfig, typeof(T).Name + ".cfg");

            try
            {
                using (var stream = new StreamReader(cfgFile))
                {
                    var serializer = new SmoothXmlSerializer();
                    var data       = serializer.Deserialize <T>(stream);
                    stream.Close();
                    return(data);
                }
            }
            catch (Exception e)
            {
                e.ToString();
                return((T)Activator.CreateInstance(typeof(T)));
            }
        }
예제 #2
0
        private static void SaveConfig <T>(T cfg)
        {
            string cfgFile = Path.Combine(sys.PathConfig, typeof(T).Name + ".cfg");

            try
            {
                try
                {
                    if (File.Exists(cfgFile))
                    {
                        File.Copy(cfgFile, cfgFile + ".bak", true);
                    }
                }
                catch { }
                SmoothXmlSerializer x      = new SmoothXmlSerializer();
                TextWriter          writer = new StreamWriter(cfgFile + ".new");
                x.Serialize(writer, cfg);
                writer.Flush();
                writer.Close();

                File.Delete(cfgFile);
                File.Move(cfgFile + ".new", cfgFile);
            }
            catch (Exception e)
            {
                e.ToString();
                try
                {
                    if (File.Exists(cfgFile + ".bak"))
                    {
                        File.Copy(cfgFile + ".bak", cfgFile, true);
                    }
                }
                catch { }
            }
        }