Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
        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);
        }