Exemplo n.º 1
0
        //-------------------------------------------------------------------
        /// <summary>
        /// Restore the persistent data.
        /// </summary>
        //-------------------------------------------------------------------
        public static void Restore()
        {
            string fileName = Data.SettingsPathName;

            if (fileName == null)
            {
                fileName = FileSearcher.GetSettingsFile();
            }
            if (File.Exists(fileName))
            {
                using (FileStream state = new FileStream(fileName, FileMode.Open))
                {
                    // Data = Serializer.Deserialize(state) as GameSettings;
                    XmlSerializer s = new XmlSerializer(typeof(GameSettings));
                    Data = (GameSettings)s.Deserialize(state);
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Restore the persistent data.
        /// </summary>
        public static void Restore()
        {
            string fileName = Data.SettingsPathName;

            if (fileName == null)
            {
                fileName = FileSearcher.GetSettingsFile();
            }
            if (File.Exists(fileName))
            {
                bool   waitForFile = false;
                double waitTime    = 0.0; // seconds
                do
                {
                    try
                    {
                        using (FileStream state = new FileStream(fileName, FileMode.Open))
                        {
                            // Data = Serializer.Deserialize(state) as GameSettings;
                            XmlSerializer s = new XmlSerializer(typeof(GameSettings));
                            Data = (GameSettings)s.Deserialize(state);
                        }
                        waitForFile = false;
                    }
                    catch (System.IO.IOException)
                    {
                        // IOException. Is the file locked? Try waiting.
                        if (waitTime < Global.TotalFileWaitTime)
                        {
                            waitForFile = true;
                            System.Threading.Thread.Sleep(Global.FileWaitRetryTime);
                            waitTime += 0.1;
                        }
                        else
                        {
                            // Give up, maybe something else is wrong?
                            throw;
                        }
                    }
                }while (waitForFile);
            }
        }