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; } } } }
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()); }
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)); }
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); } } } }
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]); }
public CLSVData(CLSVData clsvd, object value) : this(clsvd.Container, value, true) { this.Parent = clsvd; }
public void Set(object key, object value) { this[key] = new CLSVData(value); }
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; } } } }
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; } } } } } } }