Пример #1
0
        /// <summary>
        /// 升级配置类
        /// </summary>
        /// <returns></returns>
        public void Load()
        {
            var path  = IOHelper.CheckPath(@"C:\Projects\AgebullDesigner", "UpgradeDocument");
            var files = IOHelper.GetAllFiles(path, "cfg");

            RootConfig.ConfigTypes.Clear();
            foreach (var file in files)
            {
                RootConfig.ConfigTypes.Add(ConfigLoader.DeSerializer <ClassUpgradeConfig>(file));
            }
        }
Пример #2
0
        /// <summary>
        /// 保存通知对象
        /// </summary>
        public void SaveConfig <TConfig>(string filename, TConfig config, bool checkState)
            where TConfig : FileConfigBase
        {
            if (config.SaveFileName != null)
            {
                if (File.Exists(config.SaveFileName) && checkState)
                {
                    if (config.Option.IsDelete)
                    {
                        var old = ConfigLoader.DeSerializer <TConfig>(config.SaveFileName);
                        if (old != null)
                        {
                            if (old.IsDelete)
                            {
                                return;
                            }
                            config = old;
                            config.Option.IsDelete = true;
                        }
                    }
                    if (config.Option.IsLock)
                    {
                        return;
                    }
                }

                if (!string.Equals(config.SaveFileName, filename, StringComparison.OrdinalIgnoreCase) && File.Exists(config.SaveFileName))
                {
                    File.Delete(config.SaveFileName);
                }
            }
            if (config.Option.CanLock)
            {
                config.Option.LockConfig();
            }
            try
            {
                string json = JsonConvert.SerializeObject(config);
                File.WriteAllText(filename, json, Encoding.UTF8);
                config.SaveFileName = filename;
            }
            catch (Exception e)
            {
                Trace.WriteLine(e.ToString());
            }
        }