public static object GetValueFromXml(string xtype, string xdata) { switch (xtype) { case "bool": return(xdata == "1"); case "byte": return(Byte.Parse(xdata, CultureInfo.InvariantCulture)); case "i16": return(Int16.Parse(xdata, CultureInfo.InvariantCulture)); case "i32": return(Int32.Parse(xdata, CultureInfo.InvariantCulture)); case "i64": return(Int64.Parse(xdata, CultureInfo.InvariantCulture)); case "sbyte": return(SByte.Parse(xdata, CultureInfo.InvariantCulture)); case "u16": return(UInt16.Parse(xdata, CultureInfo.InvariantCulture)); case "u32": return(UInt32.Parse(xdata, CultureInfo.InvariantCulture)); case "u64": return(UInt64.Parse(xdata, CultureInfo.InvariantCulture)); case "datetime": return(DateTime.ParseExact(xdata, "s", CultureInfo.InvariantCulture)); case "dtex": return(DateTimeEx.ParseNormalized(xdata)); case "date": return(DateEx.ParseNormalized(xdata)); case "time": return(TimeEx.ParseNormalized(xdata)); case "str": return(xdata); case "decimal": return(Decimal.Parse(xdata, CultureInfo.InvariantCulture)); case "float": return(Single.Parse(xdata, CultureInfo.InvariantCulture)); case "double": return(Double.Parse(xdata, CultureInfo.InvariantCulture)); case "guid": return(new Guid(xdata)); case "blob": return(Convert.FromBase64String(xdata)); //case "array": // values[pos] = CdlArray.Parse(xdata); // break; } return(null); }