示例#1
0
 internal static object DeserializeBoolean(InternalDeserializer deserializer)
 {
     object obj2;
     try
     {
         obj2 = XmlConvert.ToBoolean(deserializer._reader.ReadElementString());
     }
     catch (FormatException exception)
     {
         throw deserializer.NewXmlException(Serialization.InvalidPrimitiveType, exception, new object[] { typeof(bool).FullName });
     }
     return obj2;
 }
示例#2
0
 internal static object DeserializeByteArray(InternalDeserializer deserializer)
 {
     object obj2;
     try
     {
         obj2 = Convert.FromBase64String(deserializer._reader.ReadElementString());
     }
     catch (FormatException exception)
     {
         throw deserializer.NewXmlException(Serialization.InvalidPrimitiveType, exception, new object[] { typeof(byte[]).FullName });
     }
     return obj2;
 }
示例#3
0
 internal static object DeserializeByte(InternalDeserializer deserializer)
 {
     Exception innerException = null;
     try
     {
         return XmlConvert.ToByte(deserializer._reader.ReadElementString());
     }
     catch (FormatException exception2)
     {
         innerException = exception2;
     }
     catch (OverflowException exception3)
     {
         innerException = exception3;
     }
     throw deserializer.NewXmlException(Serialization.InvalidPrimitiveType, innerException, new object[] { typeof(byte).FullName });
 }
示例#4
0
 internal static object DeserializeXmlDocument(InternalDeserializer deserializer)
 {
     object obj2;
     string xmlContents = deserializer.ReadDecodedElementString("XD");
     try
     {
         int? maxCharactersInDocument = null;
         if (deserializer._context.MaximumAllowedMemory.HasValue)
         {
             maxCharactersInDocument = new int?(deserializer._context.MaximumAllowedMemory.Value / 2);
         }
         XmlDocument document = LoadUnsafeXmlDocument(xmlContents, true, maxCharactersInDocument);
         deserializer._context.LogExtraMemoryUsage((xmlContents.Length - document.OuterXml.Length) * 2);
         obj2 = document;
     }
     catch (XmlException exception)
     {
         throw deserializer.NewXmlException(Serialization.InvalidPrimitiveType, exception, new object[] { typeof(XmlDocument).FullName });
     }
     return obj2;
 }
示例#5
0
 internal static object DeserializeUri(InternalDeserializer deserializer)
 {
     object obj2;
     try
     {
         obj2 = new Uri(deserializer.ReadDecodedElementString("URI"), UriKind.RelativeOrAbsolute);
     }
     catch (UriFormatException exception)
     {
         throw deserializer.NewXmlException(Serialization.InvalidPrimitiveType, exception, new object[] { typeof(Uri).FullName });
     }
     return obj2;
 }
示例#6
0
 internal static object DeserializeProgressRecord(InternalDeserializer deserializer)
 {
     ProgressRecordType type;
     object obj3;
     deserializer.ReadStartElement("PR");
     string activity = null;
     string str2 = null;
     string str3 = null;
     string statusDescription = null;
     int activityId = 0;
     int num2 = 0;
     int num3 = 0;
     int num4 = 0;
     Exception innerException = null;
     try
     {
         activity = deserializer.ReadDecodedElementString("AV");
         activityId = int.Parse(deserializer.ReadDecodedElementString("AI"), CultureInfo.InvariantCulture);
         object obj2 = deserializer.ReadOneObject();
         str2 = (obj2 == null) ? null : obj2.ToString();
         num2 = int.Parse(deserializer.ReadDecodedElementString("PI"), CultureInfo.InvariantCulture);
         num3 = int.Parse(deserializer.ReadDecodedElementString("PC"), CultureInfo.InvariantCulture);
         str3 = deserializer.ReadDecodedElementString("T");
         num4 = int.Parse(deserializer.ReadDecodedElementString("SR"), CultureInfo.InvariantCulture);
         statusDescription = deserializer.ReadDecodedElementString("SD");
     }
     catch (FormatException exception2)
     {
         innerException = exception2;
     }
     catch (OverflowException exception3)
     {
         innerException = exception3;
     }
     if (innerException != null)
     {
         throw deserializer.NewXmlException(Serialization.InvalidPrimitiveType, innerException, new object[] { typeof(ulong).FullName });
     }
     deserializer.ReadEndElement();
     try
     {
         type = (ProgressRecordType) Enum.Parse(typeof(ProgressRecordType), str3, true);
     }
     catch (ArgumentException exception4)
     {
         throw deserializer.NewXmlException(Serialization.InvalidPrimitiveType, exception4, new object[] { typeof(ProgressRecord).FullName });
     }
     try
     {
         ProgressRecord record = new ProgressRecord(activityId, activity, statusDescription);
         if (!string.IsNullOrEmpty(str2))
         {
             record.CurrentOperation = str2;
         }
         record.ParentActivityId = num2;
         record.PercentComplete = num3;
         record.RecordType = type;
         record.SecondsRemaining = num4;
         obj3 = record;
     }
     catch (ArgumentException exception5)
     {
         throw deserializer.NewXmlException(Serialization.InvalidPrimitiveType, exception5, new object[] { typeof(ProgressRecord).FullName });
     }
     return obj3;
 }
示例#7
0
 internal static object DeserializeDateTime(InternalDeserializer deserializer)
 {
     object obj2;
     try
     {
         obj2 = XmlConvert.ToDateTime(deserializer._reader.ReadElementString(), XmlDateTimeSerializationMode.RoundtripKind);
     }
     catch (FormatException exception)
     {
         throw deserializer.NewXmlException(Serialization.InvalidPrimitiveType, exception, new object[] { typeof(DateTime).FullName });
     }
     return obj2;
 }