/// <summary> /// 初始化 /// </summary> public static void Initialize() { _directMutex = new Mutex(false, SecretUtil.MD5Encrypt32(CachePath)); var doc = new XmlDocument(); switch (CacheMode) { case ObCacheMode.On: break; case ObCacheMode.Off: return; case ObCacheMode.Secret: _exteName = ".dat"; doc = new XmlEDocument(); break; } if (!Directory.Exists(CachePath)) { Directory.CreateDirectory(CachePath); } foreach (var filePath in Directory.GetFiles(CachePath, "*" + _exteName)) { try { doc.Load(filePath); } catch { continue; } var obcache = doc.SelectSingleNode("obcache"); if (obcache == null) { return; } foreach (XmlElement childNode in obcache.ChildNodes) { var model = new ObSqlcache { Version = childNode.GetAttribute("version"), SqlText = childNode.ChildNodes[0].InnerText }; var key = childNode.GetAttribute("key"); if (childNode.ChildNodes[1].InnerText.Length > 0) { var columns = childNode.ChildNodes[1].InnerText.Split(','); model.ColumnNames = new List <string>(); foreach (var column in columns) { model.ColumnNames.Add(column); } } lock (HCacheMemory) { try { if (!HCacheMemory.ContainsKey(key)) { HCacheMemory.Add(key, model); } } catch { //continue; } } } } Initialized = true; }