ЗаписьXML (XMLWriter)
Inheritance: BaseSessionObject
Exemplo n.º 1
0
        /// <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);
                }
            }
        }
Exemplo n.º 2
0
 /// <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();
 }
Exemplo n.º 3
0
        /// <summary>
        /// ЗаписатьXML (WriteXML)
        /// </summary>
        /// <param name="xmlWriter"></param>
        /// <param name="value"></param>
        public void WriteXML(XMLWriter xmlWriter, object value)
        {
            if (value is BaseObject)
            {
                value = (value as BaseObject).Ptr;
            }

            InvokeV8Method("ЗаписатьXML", xmlWriter.Ptr, value);
        }