private static void WriteFaultResponse(XmlWriter writer, IXmlRpcFault fault, IXmlRpcStreamRequestConfig config, ITypeSerializerFactory typeSerializerFactory) { writer.WriteStartElement(XmlRpcSpec.FAULT_TAG); ArrayList nestvedObjs = new ArrayList(); if (config != null && config.EnabledForExceptions) { Hashtable ht = new Hashtable(3); XmlRpcFault xpf = fault as XmlRpcFault; ht.Add(XmlRpcSpec.FAULT_CODE_TAG, fault.FaultCode); ht.Add(XmlRpcSpec.FAULT_STRING_TAG, fault.FaultString); ht.Add("faultCause", fault is XmlRpcFault ? ((XmlRpcFault)fault).Exception : null); RecursiveTypeSerializer.WriteValue(writer, ht, config, typeSerializerFactory, nestvedObjs); } else { RecursiveTypeSerializer.WriteValue(writer, fault, config, typeSerializerFactory, nestvedObjs); } writer.WriteEndElement(); }
protected XmlRpcException(SerializationInfo info, StreamingContext context) : base(info, context) { Fault = (XmlRpcFault)info.GetValue("fault", typeof(XmlRpcFault)); }