Esempio n. 1
0
        /// <summary>
        /// Deserializes the specified XML reader.
        /// </summary>
        /// <param name="xmlReader">The XML reader.</param>
        public override void Deserialize(XmlReader xmlReader)
        {
            base.Deserialize(xmlReader);

            do
            {
                if (xmlReader.NodeType == XmlNodeType.EndElement && !"SourceField".Equals(xmlReader.Name) || xmlReader.IsEmptyElement)
                {
                    return;
                }

                if (xmlReader.NodeType == XmlNodeType.Element && "SourceField".Equals(xmlReader.Name))
                {
                    var field = new SourceField(this);
                    field.Deserialize(xmlReader);
                    Fields.Add(field);
                }
            } while (xmlReader.Read());
        }
Esempio n. 2
0
        /// <summary>
        /// De-serializes the specified XML reader.
        /// </summary>
        /// <param name="xmlReader">The XML reader.</param>
        public void Deserialize(XmlReader xmlReader)
        {

            Id = Guid.Parse(xmlReader.GetAttribute("id"));
            Name = xmlReader.GetAttribute("name");
            DataType = (NodeDataType)Enum.Parse(typeof(NodeDataType), xmlReader.GetAttribute("dataType"), false);
            InnerName = xmlReader.GetAttribute("innerName");
            SetName = xmlReader.GetAttribute("setName");
            SystemName = xmlReader.GetAttribute("systemName");
            ObjectName = xmlReader.GetAttribute("objectName");
            UniqueName = xmlReader.GetAttribute("uniqueName");

            //for backward compatibility with previously saved xml
            var param = xmlReader.GetAttribute("keepSubfieldsAlive");
            KeepSubfieldsAlive = param != null && Convert.ToBoolean(param);
            param = xmlReader.GetAttribute("hideConnector");
            HideConnector = param != null && Convert.ToBoolean(param);
            param = xmlReader.GetAttribute("isGroupingField");
            IsGroupingField = param != null && Convert.ToBoolean(param);
            param = xmlReader.GetAttribute("isGroupCollapsed");
            IsGroupCollapsed = param != null && Convert.ToBoolean(param);

            if (!"ConnectorOut".Equals(xmlReader.Name))
            {
                xmlReader.ReadToFollowing("ConnectorOut");
            }
            ConnectorOut.Deserialize(xmlReader);


            while (xmlReader.Read())
            {
                if (xmlReader.NodeType == XmlNodeType.Element && "AdditionalInfo".Equals(xmlReader.Name))
                {
                    try
                    {
                        if (AdditionalInfo == null)
                            AdditionalInfo = Activator.CreateInstance(Type.GetType(xmlReader.GetAttribute("Type"))) as IExpressionFieldInfo;

                        AdditionalInfo.Deserialize(xmlReader);
                    }
                    catch (Exception) { }
                }

                else if (xmlReader.NodeType == XmlNodeType.EndElement && "SourceField".Equals(xmlReader.Name) || xmlReader.IsEmptyElement)
                {
                    return;
                }

                else if (xmlReader.NodeType == XmlNodeType.Element && "Subfields".Equals(xmlReader.Name))
                {
                    do
                    {
                        if (xmlReader.NodeType == XmlNodeType.EndElement && !"Subfields".Equals(xmlReader.Name))
                        {
                            return;
                        }

                        if (xmlReader.NodeType == XmlNodeType.Element && "SourceField".Equals(xmlReader.Name))
                        {
                            var field = new SourceField(ConnectorOut.Owner);
                            field.Deserialize(xmlReader);
                            field.ParentField = this;
                            _subfields.Add(field);
                        }
                    } while (xmlReader.Read());
                }
            }
        }