/// <summary> /// Чтение настроек Settings из файла (или создание его если не был создан) /// </summary> internal static void LoadSettings() { try { // запоминаем каталог с программой GlobalVars.AppDir = Application.StartupPath; // отмечаем флаг о том, что настройки не изменены GlobalVars.IsPrefChanged = false; // читаем настройки Settings set = new Settings(); if (File.Exists(GlobalVars.AppDir + GlobalVars.PrefFile)) // проверка существования файла { // загружаем параметры из файла ConfigSerialization.LoadSettings(ref set); // устанавливаем параметры GlobalVars.DBName = set.DB; Telerik.WinControls.ThemeResolutionService.ApplicationThemeName = set.ThemeName; // тема приложения (глобально) } else { // пишем значения по умолчанию в теперь уже создаваемый файл настроек (для первого запуска или файла нету) set = SetDefaultParams(); GlobalVars.DBName = set.DB; Telerik.WinControls.ThemeResolutionService.ApplicationThemeName = set.ThemeName; // тема приложения (глобально) ConfigSerialization.CreateSettings(set, GlobalVars.PrefFile); } // прочитанные настройки сохраним в общем месте для программы GlobalVars.Prefs = set; } catch (Exception t) { MessageBox.Show(t.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Установка параметров по умолчанию (настройки Settings) /// </summary> /// <returns>Возвращает экземпляр структуры Settings с данными по умолчанию</returns> private static Settings SetDefaultParams() { Settings set = new Settings(); set.IsAutoOpenDB = true; set.DB = String.Format("{0}\\DB\\{1}",GlobalVars.AppDir,"ProjectNSIDB.db3"); set.DBCatalog = String.Format("{0}\\{1}\\", GlobalVars.AppDir, "Files"); set.FilesCatalog = String.Format("{0}\\{1}\\", GlobalVars.AppDir, "DB"); set.LastWorkDate = DateTime.Today; set.ThemeName = "Telerik"; return set; }
// метод для десериализации данных в поля объекта (чтение файла параметров Settings) public static void LoadSettings(ref Settings o) { XmlSerializer myXmlSer = new XmlSerializer(typeof(Settings)); FileStream mySet = new FileStream(Application.StartupPath + GlobalVars.PrefFile, FileMode.Open); o = (Settings)myXmlSer.Deserialize(mySet); mySet.Close(); }