/// <summary> /// 保存版本号 /// </summary> /// <param name="version"></param> private static void SaveVersion(int version) { try { MapConfig.Instance.Version = version; var clientXmlPath = Path.GetDirectoryName(MapConfig.Instance.ClientXmlPath); //程序集物理路径 var xmlPath = Path.Combine(clientXmlPath, "MapConfig.xml"); if (File.Exists(xmlPath)) { XmlSerializeUtils.Save(xmlPath, MapConfig.Instance, new Type[] { }); } } catch (Exception ex) { LogManager.Instance.Error(ex); } }
/// <summary> /// 配置文件 /// </summary> private void InitiationConfig() { var sdir = Path.Combine(dirPath, "MapConfig.xml"); var attributedir = Path.Combine(dirPath, "DeviceAttributeConfig.xml"); var dbsymbolsdir = Path.Combine(dirPath, "DBSymbolsConfig.xml"); try { //初始化配置文件 MapConfig.Instance = XmlSerializeUtils.Load<MapConfig>(sdir, new Type[] { }); MapConfig.Instance.GCID = string.Empty; //初始化功能位置属性配置 DeviceAttributeConfig.Instance = XmlSerializeUtils.Load<DeviceAttributeConfig>(attributedir, new Type[] { }); //初始化设备参数配置 SimpleDBSymbolsConfig.Instance = XmlSerializeUtils.Load<SimpleDBSymbolsConfig>(dbsymbolsdir, new Type[] { }); //初始化标注 MapConfig.Instance.labels = MapConfig.Instance.ListLabelShow.Split(','); //保存插件的根目录路径 MapConfig.Instance.ClientXmlPath = dirPath; } catch (Exception ex) { PublicMethod.Instance.ShowMessage(ex.Message); } }
public static XmlDB Load(string filename, string password) { XmlDB db = null; var memoryStream = new MemoryStream(); try { if (File.Exists(filename)) { var types = new List <Type>(); var compress = !string.IsNullOrEmpty(password) && CompressUtils.CheckZip(filename, password); if (compress) { using (var fileStream = new FileStream(filename, FileMode.Open)) { CompressUtils.Decompress(fileStream, memoryStream, password); } memoryStream.Seek(0, SeekOrigin.Begin); } using (var xmlStream = compress ? (Stream)memoryStream : new FileStream(filename, FileMode.Open)) { using (var reader = XmlReader.Create(xmlStream)) { while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.LocalName == "DBEntity") { var typeName = reader.GetAttribute("xsi:type"); types.Add(TypeCache.Instance.GetTypeFromCache(typeof(DBEntity), typeName)); } } } types.AddRange(ReflectionUtils.FindTypes(typeof(DBEntity).Assembly, typeof(Geometry))); xmlStream.Seek(0, SeekOrigin.Begin); db = XmlSerializeUtils.Load <XmlDB>(xmlStream, types.Distinct().ToArray() /*GetExtraTypes(NAMESPACES)*/, string.Empty); db.DecodeUnprited(); } } else { db = new XmlDB { FileName = filename, Tables = new List <XmlTable>() }; } } catch (Exception ex)//check it later { db = new XmlDB { FileName = filename, Tables = new List <XmlTable>() }; LogManager.Instance.Error(ex); } finally { db.FileName = filename; db.BuildIndex(); memoryStream.Dispose(); } return(db); }