/// <summary> /// 创建一个新的配置 /// </summary> /// <param name="pPath"></param> /// <returns></returns> private static KRNetworkingConfig CreateNew(string pPath = null) { string path = GetPath(pPath); //KLog.Logger.Error(string.Format("---创建新的KRNetworkingConfig文件,日期:{0}!!!", DateTime.Now.ToString())); var config = new KRNetworkingConfig(true); config.Save(path); return(config); }
/// <summary> /// 加载设置 当p_path 为空是 加载默认路径 /// </summary> /// <param name="pPath">路径</param> /// <returns></returns> public static KRNetworkingConfig Load(string pPath = null) { bool succeed = false; string path = GetPath(pPath); KRNetworkingConfig config = null; FileStream fs = null; string version = _version; try { if (!File.Exists(path)) { Config = config = CreateNew(path); BackupConfig(); return(config); } fs = new FileStream(path, FileMode.Open, FileAccess.Read); var xs = new XmlSerializer(typeof(KRNetworkingConfig)); //fs.Seek(0, SeekOrigin.Begin); Config = config = (KRNetworkingConfig)xs.Deserialize(fs); fs.Seek(0, SeekOrigin.Begin); XElement root = XElement.Load(fs); fs.Close(); XAttribute verAttr = root.Attribute("Version"); if (verAttr == null || verAttr.Value != version) { //fs.Close(); config.Version = version; fs.Close(); config.Save(); //CreateNew(path); //_systemConfig = config; //return config; } succeed = true; } catch (IOException ex) { ClientHelper.TraceException("KRNetworkingConfig.Load", "KRNetworkingConfig文件读写异常!", ex.Message); //KLog.Logger.Error("KRNetworkingConfig文件读写异常!", ex); } catch (Exception ex) { ClientHelper.TraceException("KRNetworkingConfig.Load", "设置反序列化异常!", ex.Message); //KLog.Logger.Error("设置反序列化异常!", ex); //throw new Exception("设置反序列化异常!"); } finally { if (fs != null) { fs.Close(); } } if (!succeed) { RestoreBakConfig(path); config = Load(); } else { BackupConfig(); } return(config); }