/// <summary> /// В XML /// </summary> /// <param name="value"></param> public string ToXML(object value) { XMLWriter xmlWriter = new XMLWriter(this); xmlWriter.SetString(); WriteXML(xmlWriter, value); return(xmlWriter.Close()); }
/// <summary> /// Load objects cache /// </summary> /// <param name="sessionObjects"></param> public void LoadObjectsCache(IEnumerable <BaseSessionObject> sessionObjects) { var enmrtr = sessionObjects.GetEnumerator(); XMLWriter xmlWriter = null; List <BaseSessionObject> xmlLoadedObjects = null; while (enmrtr.MoveNext()) { var sessionObject = enmrtr.Current; CheckSession(sessionObject); if (sessionObject is IV8XmlSerializable) { if (xmlWriter == null) { xmlWriter = new XMLWriter(this); xmlWriter.SetString(); xmlLoadedObjects = new List <BaseSessionObject>(); } WriteXML(xmlWriter, sessionObject); xmlLoadedObjects.Add(sessionObject); } else if (sessionObject is IV8Serializable) { string str = ValueToStringInternal(sessionObject.Ptr); (sessionObject as IV8Serializable).LoadFromV8String(str); } } if (xmlWriter != null) { string xml = xmlWriter.Close(); XmlDocument doc = new XmlDocument(); var root = doc.CreateElement("root"); root.InnerXml = xml; int objectId = 0; foreach (var node in root.ChildNodes) { if (!(node is XmlElement)) { continue; } XmlElement objectTag = (XmlElement)node; BaseSessionObject v8Object = xmlLoadedObjects[objectId++]; (v8Object as IV8XmlSerializable).LoadFromV8Xml(objectTag); } } }
/// <summary> /// В XML /// </summary> /// <param name="value"></param> public string ToXML(object value) { XMLWriter xmlWriter = new XMLWriter(this); xmlWriter.SetString(); WriteXML(xmlWriter, value); return xmlWriter.Close(); }
/// <summary> /// Load objects cache /// </summary> /// <param name="sessionObjects"></param> public void LoadObjectsCache(IEnumerable<BaseSessionObject> sessionObjects) { var enmrtr = sessionObjects.GetEnumerator(); XMLWriter xmlWriter = null; List<BaseSessionObject> xmlLoadedObjects = null; while (enmrtr.MoveNext()) { var sessionObject = enmrtr.Current; CheckSession(sessionObject); if (sessionObject is IV8XmlSerializable) { if (xmlWriter == null) { xmlWriter = new XMLWriter(this); xmlWriter.SetString(); xmlLoadedObjects = new List<BaseSessionObject>(); } WriteXML(xmlWriter, sessionObject); xmlLoadedObjects.Add(sessionObject); } else if (sessionObject is IV8Serializable) { string str = ValueToStringInternal(sessionObject.Ptr); (sessionObject as IV8Serializable).LoadFromV8String(str); } } if (xmlWriter != null) { string xml = xmlWriter.Close(); XmlDocument doc = new XmlDocument(); var root = doc.CreateElement("root"); root.InnerXml = xml; int objectId = 0; foreach (var node in root.ChildNodes) { if (!(node is XmlElement)) { continue; } XmlElement objectTag = (XmlElement) node; BaseSessionObject v8Object = xmlLoadedObjects[objectId++]; (v8Object as IV8XmlSerializable).LoadFromV8Xml(objectTag); } } }