Esempio n. 1
0
 public CLSVData this[object key]
 {
     get
     {
         if (this.Value is CLSHashtable)
         {
             CLSHashtable hashtable = (CLSHashtable)this.Value;
             return(hashtable[key]);
         }
         return(new CLSVData(this, null));
     }
     set
     {
         if (this.Value is CLSHashtable)
         {
             CLSHashtable hashtable = (CLSHashtable)this.Value;
             hashtable[key] = value;
             if (!hashtable.ContainsKey(key) && (value != null))
             {
                 CLSVData data = value;
                 data.Parent    = this;
                 data.Container = this.Container;
             }
         }
     }
 }
Esempio n. 2
0
        private string GetJsonValueStr(CLSVData value)
        {
            StringBuilder builder = new StringBuilder();

            if (value.ValueIsNull)
            {
                builder.Append("null");
            }
            else if (CLSVData.Helper_CCDecimal(value.Value))
            {
                builder.Append(value.ValueDecimal);
            }
            else if (value.Value is bool)
            {
                builder.Append(this.GetJsonValueStr_Boolean(value.ValueBool));
            }
            else if (value.Value is string)
            {
                builder.Append(this.GetJsonValueStr_String(value.Value as string));
            }
            else if (value.Value is DateTime)
            {
                builder.Append(this.GetJsonValueStr_String(value.Value.ToString()));
            }
            else if (value.Value is CLSHashtable)
            {
                builder.Append(this.GetJsonValueStr_CLSHashtable(value.Value as CLSHashtable));
            }
            else if (value.Value is CLSArrayList)
            {
                builder.Append(this.GetJsonValueStr_Array(value.Value as CLSArrayList));
            }
            else if (value.Value is ArrayList)
            {
                CLSArrayList arr = new CLSArrayList();
                foreach (object obj2 in value.ValueArrayList)
                {
                    arr.Add(obj2);
                }
                builder.Append(this.GetJsonValueStr_Array(arr));
            }
            else if (value.Value is IEnumerable)
            {
                CLSArrayList list2 = new CLSArrayList();
                foreach (object obj3 in (IEnumerable)value.Value)
                {
                    list2.Add(obj3);
                }
                builder.Append(this.GetJsonValueStr_Array(list2));
            }
            else
            {
                builder.Append(this.GetJsonValueStr_Default(value.Value));
            }
            return(builder.ToString());
        }
Esempio n. 3
0
        public override int Add(object value)
        {
            if (value is CLSVData)
            {
                return(base.Add((CLSVData)value));
            }
            CLSVData data = new CLSVData(this.cht, value);

            return(base.Add(data));
        }
Esempio n. 4
0
 public void Convert_X2H_ForCollection(object value)
 {
     if (value is Hashtable)
     {
         Hashtable hashtable = (Hashtable)value;
         string[]  array     = new string[hashtable.Count];
         hashtable.Keys.CopyTo(array, 0);
         foreach (string str in array)
         {
             object obj2 = hashtable[str];
             if (obj2 is string)
             {
                 object   obj3 = this.Convert_X2H((string)obj2);
                 CLSVData data = new CLSVData(this, obj3);
                 hashtable[str] = data;
             }
             else if (Helper_IsParent(obj2))
             {
                 this.Convert_X2H_ForCollection(obj2);
             }
         }
     }
     else if (value is ArrayList)
     {
         ArrayList list = (ArrayList)value;
         for (int i = 0; i < list.Count; i++)
         {
             object obj4 = list[i];
             if (obj4 is string)
             {
                 object   obj5  = this.Convert_X2H((string)obj4);
                 CLSVData data2 = new CLSVData(this, obj5);
                 list[i] = data2;
             }
             else if (Helper_IsParent(obj4))
             {
                 this.Convert_X2H_ForCollection(obj4);
             }
         }
     }
 }
Esempio n. 5
0
 public T[] ToTArray <T>()
 {
     switch (typeof(T).Name.ToLower())
     {
     case "byte[]":
     case "datetime":
     case "decimal":
     case "int32":
     case "string":
     case "boolean":
     {
         T[] localArray = new T[this.Count];
         for (int i = 0; i < this.Count; i++)
         {
             CLSVData data = (CLSVData)this[i];
             localArray[i] = (T)Convert.ChangeType(data.ValueRaw, typeof(T));
         }
         return(localArray);
     }
     }
     return(new T[0]);
 }
Esempio n. 6
0
 public CLSVData(CLSVData clsvd, object value) : this(clsvd.Container, value, true)
 {
     this.Parent = clsvd;
 }
Esempio n. 7
0
 public void Set(object key, object value)
 {
     this[key] = new CLSVData(value);
 }
Esempio n. 8
0
 public CLSVData this[object key]
 {
     get
     {
         CLSVData data = null;
         object   obj2 = this.m_ht_data[key];
         if (obj2 == null)
         {
             CLSVData data2 = new CLSVData(this, new CLSHashtable());
             this.Add(key, data2);
             data = data2;
         }
         else if (obj2 is CLSVData)
         {
             data = (CLSVData)obj2;
         }
         else if (obj2 is CLSHashtable)
         {
             data = new CLSVData(obj2);
         }
         else if (obj2 is ArrayList)
         {
             data = new CLSVData(this, obj2, true);
         }
         else if (obj2 is string)
         {
             string   objstr = (string)obj2;
             object   obj3   = this.Convert_X2H(objstr);
             CLSVData data3  = new CLSVData(this, obj3);
             this[key] = data3;
             data      = data3;
         }
         else
         {
             CLSVData data4 = new CLSVData(this, new CLSHashtable());
             this[key] = data4;
             data      = data4;
         }
         data.Container = this;
         return(data);
     }
     set
     {
         if (value == null)
         {
             this.m_ht_data.Remove(key);
         }
         else
         {
             value.Container = this;
             if (!this.m_ht_data.ContainsKey(key))
             {
                 this.m_keychange = true;
                 this.m_ht_data.Add(key, value);
             }
             else
             {
                 this.m_ht_data[key] = value;
             }
         }
     }
 }
Esempio n. 9
0
        private static void Func_NS_ParseNode(CLSHashtable cht, bool isroot, XmlNode node, CLSVData clsvopt)
        {
            string name = node.Name;

            if (Helper_NS_IsParent(node))
            {
                string str2 = name;
                if (!(str2 == "dict"))
                {
                    if (str2 == "array")
                    {
                        if (isroot)
                        {
                            cht["array"] = new CLSArrayList();
                            clsvopt      = cht["array"];
                        }
                        for (int i = 0; i < node.ChildNodes.Count; i++)
                        {
                            XmlNode node4 = node.ChildNodes[i];
                            if (Helper_NS_IsParent(node4))
                            {
                                CLSVData data3 = Helper_NS_GetParentObj(cht, node4);
                                clsvopt.ValueCLSArrayList.Add(data3.ValueRaw);
                                Func_NS_ParseNode(cht, false, node4, data3);
                            }
                            else
                            {
                                CLSVData data4 = Helper_NS_GetChildObj(cht, node4);
                                clsvopt.ValueCLSArrayList.Add(data4.ValueRaw);
                            }
                        }
                    }
                }
                else if ((node.ChildNodes.Count != 0) && ((node.ChildNodes.Count % 2) <= 0))
                {
                    for (int j = 0; j < node.ChildNodes.Count; j += 2)
                    {
                        XmlNode node2 = node.ChildNodes[j];
                        XmlNode node3 = node.ChildNodes[j + 1];
                        if (node2.Name == "key")
                        {
                            if (Helper_NS_IsParent(node3))
                            {
                                CLSVData data = Helper_NS_GetParentObj(cht, node3);
                                if (isroot)
                                {
                                    cht[node2.InnerText] = data;
                                }
                                else
                                {
                                    clsvopt[node2.InnerText] = data;
                                }
                                Func_NS_ParseNode(cht, false, node3, data);
                            }
                            else
                            {
                                CLSVData data2 = Helper_NS_GetChildObj(cht, node3);
                                if (isroot)
                                {
                                    cht[node2.InnerText] = data2;
                                }
                                else
                                {
                                    clsvopt[node2.InnerText] = data2;
                                }
                            }
                        }
                    }
                }
            }
        }