Exemple #1
0
        /// <summary>
        /// 指定节点中反序列化整个 ObjList。需指定 ItemType, 如 ItemType 为 null,
        /// 则试图从子节点的 ItemType 属性中建立 ItemType。
        /// </summary>
        /// <param name="node">反序列化 ObjList 的 XmlNode 节点。</param>
        public override void XMLDecode(XmlNode node)
        {
            base.XMLDecode(node);
            XmlNode xmlNode = DataPacket.SelectChildNode(node, "FDataList");

            if (xmlNode != null)
            {
                XmlNodeList childNodes = xmlNode.ChildNodes;
                int         count      = childNodes.Count;
                for (int i = 0; i < count; i++)
                {
                    XmlNode xmlNode2 = childNodes.Item(i);
                    if (xmlNode2.NodeType == XmlNodeType.Element)
                    {
                        DataPacket dataPacket = this.CreateNewItem();
                        if (dataPacket == null)
                        {
                            XmlAttribute xmlAttribute = xmlNode.Attributes.GetNamedItem("ItemType") as XmlAttribute;
                            if (xmlAttribute != null)
                            {
                                dataPacket = (CommUtils.CreateObjectByType(xmlAttribute.Value) as DataPacket);
                            }
                        }
                        dataPacket.XMLDecode(xmlNode2);
                        this.AddItem(dataPacket);
                    }
                }
            }
        }