Пример #1
0
        internal static object FromXmlString(TypeData type, string value)
        {
            if (value == null)
            {
                return(null);
            }

            switch (type.XmlType)
            {
            case "boolean": return(XmlConvert.ToBoolean(value));

            case "unsignedByte": return(XmlConvert.ToByte(value));

            case "char": return((char)XmlConvert.ToInt32(value));

#if NET_2_0
            case "dateTime": return(XmlConvert.ToDateTime(value, XmlDateTimeSerializationMode.RoundtripKind));

            case "date": return(DateTime.ParseExact(value, "yyyy-MM-dd", null));

            case "time": return(DateTime.ParseExact(value, "HH:mm:ss.FFFFFFF", null));
#else
            case "dateTime": return(XmlConvert.ToDateTime(value, XmlDateTimeSerializationMode.Unspecified));

            case "date": return(DateTime.ParseExact(value, "yyyy-MM-dd", null));

            case "time": return(DateTime.ParseExact(value, "HH:mm:ss.fffffffzzz", null));
#endif
            case "BigInteger": return(XmlConvert.ToDecimal(value));

            case "double": return(XmlConvert.ToDouble(value));

            case "short": return(XmlConvert.ToInt16(value));

            case "int": return(XmlConvert.ToInt32(value));

            case "long": return(XmlConvert.ToInt64(value));

            case "byte": return(XmlConvert.ToSByte(value));

            case "float": return(XmlConvert.ToSingle(value));

            case "unsignedShort": return(XmlConvert.ToUInt16(value));

            case "unsignedInt": return(XmlConvert.ToUInt32(value));

            case "unsignedLong": return(XmlConvert.ToUInt64(value));

            case "guid": return(XmlConvert.ToGuid(value));

            case "base64":
            case "base64Binary": return(Convert.FromBase64String(value));

            case "hexBinary": return(XmlConverterEx.FromBinHexString(value));

            case "duration": return(value);

            default:
                if (type.Type != null)
                {
                    return(Convert.ChangeType(value, type.Type));
                }
                else
                {
                    return(value);
                }
            }
        }
Пример #2
0
 protected static byte[] ToByteArrayHex(string value)
 {
     return(XmlConverterEx.FromBinHexString(value));
 }