Exemplo n.º 1
0
        /// <summary>
        /// Clones collection.
        /// </summary>
        /// <returns>Cloned <see cref="XmlProxyAttributeCollection"/> collection object.</returns>
        public XmlProxyAttributeCollection Clone()
        {
            XmlProxyAttributeCollection coll = new XmlProxyAttributeCollection();

            foreach (XmlProxyAttribute attribute in List)
            {
                coll.Add(attribute.Key, attribute.Value);
            }

            return(coll);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Deserialize
        /// </summary>
        /// <param name="info">The info.</param>
        /// <param name="context">The context.</param>
        protected virtual void Deserialize(SerializationInfo info, StreamingContext context)
        {
            try
            {
                // Element name
                mElementName = info.GetString("ElementName");

                mElementValue = info.GetString("ElementValue");

                /*
                 * // Element value
                 * string elementValueType = info.GetString("ElementValueType");
                 * if (elementValueType != string.Empty)
                 * {
                 *      Type t = Type.GetType(elementValueType);
                 *      object o = info.GetValue("ElementValue", t);
                 *      this.mElementValue = o;
                 * }
                 * else
                 * {
                 *      this.mElementValue = null;
                 * }
                 */

                // Attributes collection
                mAttributes = new XmlProxyAttributeCollection();
                int attrsCount = info.GetInt32("AttributesCount");
                for (int i = 0; i < attrsCount; i++)
                {
                    string si  = i.ToString();
                    string key = info.GetString("_att_k" + si);
                    string val = info.GetString("_att_v" + si);
                    mAttributes.Add(key, val);

                    /*
                     * string attrvalueType = info.GetString("_att_vt"+si);
                     * if (attrvalueType != string.Empty)
                     * {
                     *      Type t = Type.GetType(attrvalueType);
                     *      object o = info.GetValue("_att_v"+si, t);
                     *      this.mAttributes.Add(key, o);
                     * }
                     * else
                     * {
                     *      this.mAttributes.Add(key, null);
                     * }
                     */
                }

                // Childs collection
                mChilds = new XmlProxyCollection(this);
                mChilds.UpdateOwnerItem(this);
                int childCount = info.GetInt32("ChildsCount");
                for (int i = 0; i < childCount; i++)
                {
                    XmlProxy child = info.GetValue("_ch" + i, typeof(XmlProxy)) as XmlProxy;
                    mChilds.Add(child);
                }
            }
            catch (SerializationException e)
            {
                Debug.WriteLine("...Deserialization of DataTreeItem failed: " + e);
            }
        }