Пример #1
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] = CdlArray.Parse(xdata);
                //    break;
            }
            return(null);
        }