Ejemplo n.º 1
0
            public void StoreObject(object key, object obj)
            {
                object  oid  = m_xmlsc.GetOidForObject(obj);
                XmlNode node = m_xmlsc.CreateEmptyNode(key.ToString(), obj.GetType(), oid);

                m_xmlsc.CurrentNode.AppendChild(node);
                m_xmlsc.PushNode(node);
                m_xmlsc.StoreObject(key, obj.ToString());
                m_xmlsc.PopNode();
            }
Ejemplo n.º 2
0
            public void StoreObject(object key, object obj)
            {
                object  oid  = m_xmlsc.GetOidForObject(obj);
                XmlNode node = m_xmlsc.CreateEmptyNode(key.ToString(), m_type, oid);

                m_xmlsc.CurrentNode.AppendChild(node);
                m_xmlsc.PushNode(node);
                DictionaryEntry de = (DictionaryEntry)obj;

                m_xmlsc.StoreObject("key", de.Key);
                m_xmlsc.StoreObject("Value", de.Value);
                m_xmlsc.PopNode();
            }
Ejemplo n.º 3
0
            public void StoreObject(object key, object obj)
            {
                object  oid  = m_xmlsc.GetOidForObject(obj);
                XmlNode node = m_xmlsc.CreateEmptyNode(key.ToString(), obj.GetType(), oid);

                m_xmlsc.CurrentNode.AppendChild(node);
                m_xmlsc.PushNode(node);
                Delegate del = (Delegate)obj;

                m_xmlsc.StoreObject("Target", del.Target);
                m_xmlsc.StoreObject("Method", del.Method.Name);
                m_xmlsc.PopNode();
            }
Ejemplo n.º 4
0
            public void StoreObject(object key, object obj)   // TODO: Array of primitives - more compact format.
            {
                object  oid  = m_xmlsc.GetOidForObject(obj);
                XmlNode node = m_xmlsc.CreateEmptyNode(key.ToString(), m_type, oid);

                m_xmlsc.CurrentNode.AppendChild(node);
                m_xmlsc.PushNode(node);

                Array array = (Array)obj;
                int   rank  = array.Rank;

                int[] lengths = new int[rank];
                for (int i = 0; i < rank; i++)
                {
                    lengths[i] = array.GetLength(i);
                }
                m_xmlsc.StoreObject("ElementType", array.GetType());
                if (rank > 1)
                {
                    m_xmlsc.StoreObject("Lengths", lengths);
                }
                else
                {
                    m_xmlsc.StoreObject("Length", lengths[0]);
                }

                int[] indices = new int[rank];
                Array.Clear(indices, 0, rank);

                int ndx = 0;

                while (ndx < rank)
                {
                    ndx = 0;
                    string ndxStr = GetNdxString(indices);
                    m_xmlsc.StoreObject(ndxStr, array.GetValue(indices));
                    while ((ndx < indices.Length) && (++indices[ndx]) == lengths[ndx])
                    {
                        indices[ndx] = 0;
                        ndx++;
                    }
                }

                m_xmlsc.PopNode();
            }
Ejemplo n.º 5
0
            public void StoreObject(object key, object obj)
            {
                object  oid  = m_xmlsc.GetOidForObject(obj);
                XmlNode node = m_xmlsc.CreateEmptyNode(key.ToString(), m_type, oid);

                m_xmlsc.CurrentNode.AppendChild(node);
                m_xmlsc.PushNode(node);
                ArrayList al = (ArrayList)obj;

                m_xmlsc.StoreObject("NumEntries", al.Count);
                int i = 0;

                foreach (object entry in al)
                {
                    m_xmlsc.StoreObject("Val_" + i, entry);
                    i++;
                }
                m_xmlsc.PopNode();
            }
Ejemplo n.º 6
0
            public void StoreObject(object key, object obj)
            {
                object  oid  = m_xmlsc.GetOidForObject(obj);
                XmlNode node = m_xmlsc.CreateEmptyNode(key.ToString(), m_type, oid);

                m_xmlsc.CurrentNode.AppendChild(node);
                m_xmlsc.PushNode(node);
                Hashtable ht = (Hashtable)obj;

                m_xmlsc.StoreObject("NumEntries", ht.Count);
                int i = 0;

                foreach (DictionaryEntry de in ht)
                {
                    m_xmlsc.StoreObject("Key_" + i, de.Key);
                    m_xmlsc.StoreObject("Val_" + i, de.Value);
                    i++;
                }
                m_xmlsc.PopNode();
            }