public static bool CustomValueFromStringOverride(Type type, string sval, out object res) { if (type == typeof(DateTimeEx)) { res = DateTimeEx.ParseNormalized(sval); return(true); } else if (type == typeof(ISqlDialect)) { if (sval.Contains(":")) { string[] ar = sval.Split(new char[] { ':' }, 2); var holder = DialectAddonType.Instance.FindHolder(ar[0]); if (holder == null) { res = null; } else { ISqlDialect dial = (ISqlDialect)holder.CreateInstance(); dial.SetVersion(new SqlServerVersion(ar[1])); res = dial; } return(true); } else { ISqlDialect dial = (ISqlDialect)DialectAddonType.Instance.FindHolder(sval).CreateInstance(); res = dial; return(true); } } res = null; return(false); }
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] = BedArray.Parse(xdata); // break; } return(null); }