Ejemplo n.º 1
0
        /// <summary>
        /// creates or converts an existing configuration into the new format, but only if the existing configuration is null or its version is not
        /// <para>after this method has finished, _configuration will have a valid value</para>
        /// </summary>
        private bool ConvertOrCreate()
        {
            if (_configuration == null || _configuration.Version != Assembly.GetExecutingAssembly().GetName().Version.ToString())
            {
                _elementReadCallback = null;

                if (_configuration == null)
                {
                    _configuration = new Xml.Settings.Options();
                }

                _configuration.Version = Assembly.GetExecutingAssembly().GetName().Version.ToString();

                //-----read the existing file and convert if possible
                if (File.Exists(ExtensionManager.Instance.SettingsFileFullname))
                {
                    try
                    {
                        new XmlReader(false)
                        {
                            OnElementRead = ElementCallback, OnAttributesRead = AttributesCallback
                        }.Read(ExtensionManager.Instance.SettingsFileFullname);
                    }
                    catch (Exception ex)
                    {
                        LoggingManager.Instance.Logger.Error(string.Format("could not read settings file {0}", ExtensionManager.Instance.SettingsFileFullname), ex);
                    }
                }

                return(true);
            }
            return(false);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// loads the confiugration from the file
 /// </summary>
 public void LoadSettings()
 {
     lock (_lockSaveLoad)
     {
         int newConfigurationHashCode = XmlUtil.ToString(Configuration).GetHashCode();
         if (newConfigurationHashCode != _configurationHashCode)
         {
             Debug.WriteLine(string.Format("started loading at {0:hh:mm.ss:ffff}", DateTime.Now));
             try
             {
                 _configuration         = XmlUtil.Deserialize <Xml.Settings.Options>(ExtensionManager.Instance.SettingsFileFullname);
                 _configurationHashCode = XmlUtil.ToString(_configuration).GetHashCode();
             }
             catch (Exception ex)
             {
                 LoggingManager.Instance.Logger.Warn(string.Format("could not deserialize configuration file {0}", ExtensionManager.Instance.SettingsFileFullname), ex);
             }
             Debug.WriteLine(string.Format("finished loading at {0:hh:mm.ss:ffff}", DateTime.Now));
         }
     }
 }