public XmlRpcResponse DeserializeResponse(XmlReader rdr, Type returnType) { try { IEnumerator <Node> iter = new XmlRpcParser().ParseResponse(rdr).GetEnumerator(); iter.MoveNext(); if (iter.Current is FaultNode) { var xmlRpcException = DeserializeFault(iter); throw xmlRpcException; } if (returnType == typeof(void) || !iter.MoveNext()) { return new XmlRpcResponse { retVal = null } } ; var valueNode = iter.Current as ValueNode; object retObj = MapValueNode(iter, returnType, new MappingStack("response"), MappingAction.Error); var response = new XmlRpcResponse { retVal = retObj }; return(response); } catch (XmlException ex) { throw new XmlRpcIllFormedXmlException("Response contains invalid XML", ex); } }
public Object ParseValueElement( XmlReader rdr, Type valType, MappingStack mappingStack, MappingAction mappingAction) { var iter = new XmlRpcParser().ParseValue(rdr).GetEnumerator(); iter.MoveNext(); return(MapValueNode(iter, valType, mappingStack, mappingAction)); }
public XmlRpcResponse DeserializeResponse(XmlReader rdr, Type returnType) { try { IEnumerator<Node> iter = new XmlRpcParser().ParseResponse(rdr).GetEnumerator(); iter.MoveNext(); if (iter.Current is FaultNode) { var xmlRpcException = DeserializeFault(iter); throw xmlRpcException; } if (returnType == typeof(void) || !iter.MoveNext()) return new XmlRpcResponse { retVal = null }; var valueNode = iter.Current as ValueNode; object retObj = MapValueNode(iter, returnType, new MappingStack("response"), MappingAction.Error); var response = new XmlRpcResponse { retVal = retObj }; return response; } catch (XmlException ex) { throw new XmlRpcIllFormedXmlException("Response contains invalid XML", ex); } }