Ejemplo n.º 1
0
        private XmlElement serializeObject(DomainObjectData xobj, XmlDocument xmlDoc, PreloadsNavigator nav)
        {
            XmlElement xmlObject = XMetadataManager.CreateObjectTemplate(xobj.TypeInfo, xmlDoc, false);//m_mdManager.CreateObjectTemplate(xobj.TypeInfo, xmlDoc, false);

            xmlObject.SetAttribute("oid", XmlConvert.ToString(xobj.ObjectID));
            if (xobj.IsNew)
            {
                xmlObject.SetAttribute("new", "1");
            }
            else if (xobj.TS > -1)
            {
                xmlObject.SetAttribute("ts", XmlConvert.ToString(xobj.TS));
            }
            if (nav != null)
            {
                nav.MoveNext();
            }
            foreach (XmlElement xmlProp in xmlObject.ChildNodes)
            {
                if (nav != null && nav.HasProp(xmlProp.LocalName))
                {
                    // развернуть объекты в свойстве
                    serializePropertyInternal(xobj, xmlProp, nav);
                }
                else
                {
                    // в свойстве только заглушки
                    serializePropertyInternal(xobj, xmlProp, null);
                }
            }
            if (nav != null)
            {
                nav.MoveBack();
            }
            return(xmlObject);
        }