public static object ReadXmlValue(SoapReader reader) { reader.XmlReader.MoveToElement(); if (reader.XmlReader.IsEmptyElement) { reader.XmlReader.Skip(); return(new Type[0]); } reader.XmlReader.ReadStartElement(); string names = reader.XmlReader.ReadString(); while (reader.XmlReader.NodeType != XmlNodeType.EndElement) { reader.XmlReader.Skip(); } ArrayList types = new ArrayList(); string[] tns = names.Split(' '); foreach (string tn in tns) { if (tn.Length == 0) { continue; } types.Add(reader.GetTypeFromQName(tn)); } reader.XmlReader.ReadEndElement(); return((Type[])types.ToArray(typeof(Type))); }
public object Deserialize(Stream serializationStream, HeaderHandler handler) { object objReturn = null; SoapReader soapReader = new SoapReader(_binder, _selector, _context); CultureInfo savedCi = CultureInfo.CurrentCulture; try { Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); objReturn = soapReader.Deserialize(serializationStream, _topObject); } finally { Thread.CurrentThread.CurrentCulture = savedCi; } return objReturn; }
public object Deserialize(Stream serializationStream, HeaderHandler handler) { object objReturn = null; SoapReader soapReader = new SoapReader(_binder, _selector, _context); CultureInfo savedCi = CultureInfo.CurrentCulture; try { Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); objReturn = soapReader.Deserialize(serializationStream, _topObject); } finally { Thread.CurrentThread.CurrentCulture = savedCi; } return(objReturn); }
public object ReadInternalSoapValue(SoapReader reader, Type type) { if (CanBeValue(type)) { return(ParseXsdValue(reader.XmlReader.ReadElementString(), type)); } if (type == typeof(MethodSignature)) { return(MethodSignature.ReadXmlValue(reader)); } string val = reader.XmlReader.ReadElementString(); Element elem = GetXmlElement(type); if (elem.ParseMethod != null) { return(elem.ParseMethod.Invoke(null, new object[] { val })); } throw new SerializationException("Can't parse type " + type); }
public static object ReadXmlValue (SoapReader reader) { reader.XmlReader.MoveToElement (); if (reader.XmlReader.IsEmptyElement) { reader.XmlReader.Skip (); return new Type[0]; } reader.XmlReader.ReadStartElement (); string names = reader.XmlReader.ReadString (); while (reader.XmlReader.NodeType != XmlNodeType.EndElement) reader.XmlReader.Skip (); ArrayList types = new ArrayList (); string[] tns = names.Split (' '); foreach (string tn in tns) { if (tn.Length == 0) continue; types.Add (reader.GetTypeFromQName (tn)); } reader.XmlReader.ReadEndElement (); return (Type[]) types.ToArray (typeof(Type)); }
public object ReadInternalSoapValue (SoapReader reader, Type type) { if (CanBeValue (type)) return ParseXsdValue (reader.XmlReader.ReadElementString (), type); if (type == typeof(MethodSignature)) { return MethodSignature.ReadXmlValue (reader); } string val = reader.XmlReader.ReadElementString (); Element elem = GetXmlElement (type); if (elem.ParseMethod != null) return elem.ParseMethod.Invoke (null, new object[] { val }); throw new SerializationException ("Can't parse type " + type); }
public object Deserialize(Stream serializationStream, HeaderHandler handler) { SoapReader soapReader = new SoapReader(_binder, _selector, _context); return(soapReader.Deserialize(serializationStream, _topObject)); }
public object Deserialize(Stream serializationStream, HeaderHandler handler) { SoapReader soapReader = new SoapReader(_binder, _selector, _context); return soapReader.Deserialize(serializationStream, _topObject); }