// helper function that allows us to pass dummy subcodes around but clear them before they get to the user internal void ClearSubcode() { if (subcode != null) { subcode = subcode.Subcode; } }
/// <include file='doc\SoapException.uex' path='docs/doc[@for="SoapException.SoapException7"]/*' /> // SOAP12: made this internal internal SoapException(string message, XmlQualifiedName code, string actor, string role, System.Xml.XmlNode detail, SoapFaultSubcode subcode, Exception innerException) : base(message, innerException) { this.code = code; this.actor = actor; this.role = role; this.detail = detail; this.subcode = subcode; }
private SoapFaultSubcode ReadSoap12FaultCodesRecursive(XmlReader reader, int depth) { if (depth > 100) { return(null); } if (reader.IsEmptyElement) { reader.Skip(); return(null); } XmlQualifiedName code = null; SoapFaultSubcode subcode = null; reader.ReadStartElement(); reader.MoveToContent(); while (reader.NodeType != XmlNodeType.EndElement && reader.NodeType != XmlNodeType.None) { if (reader.NamespaceURI == Soap12.Namespace || reader.NamespaceURI == null || reader.NamespaceURI.Length == 0) { if (reader.LocalName == Soap12.FaultCodeValue) { code = ReadFaultCode(reader); } else if (reader.LocalName == Soap12.FaultSubcode) { subcode = ReadSoap12FaultCodesRecursive(reader, depth + 1); } else { reader.Skip(); } } else { reader.Skip(); } reader.MoveToContent(); } while (reader.NodeType == XmlNodeType.Whitespace) { reader.Skip(); } if (reader.NodeType == XmlNodeType.None) { reader.Skip(); } else { reader.ReadEndElement(); } return(new SoapFaultSubcode(code, subcode)); }
public SoapHeaderException ( string message, XmlQualifiedName code, string actor, string role, SoapFaultSubcode subcode, Exception innerException) : base (message, code, actor, role, null, subcode, innerException) { }
private XmlQualifiedName ReadSoap12FaultCode(XmlReader reader, out SoapFaultSubcode subcode) { ArrayList codes = new ArrayList(); SoapFaultSubcode code = ReadSoap12FaultCodesRecursive(reader, 0); if (code == null) { subcode = null; return(null); } else { subcode = code.Subcode; return(code.Code); } }
SoapException ReadSoapException(XmlReader reader) { XmlQualifiedName faultCode = XmlQualifiedName.Empty; string faultString = null; string faultActor = null; string faultRole = null; XmlNode detail = null; SoapFaultSubcode subcode = null; bool soap12 = (reader.NamespaceURI == Soap12.Namespace); if (reader.IsEmptyElement) { reader.Skip(); } else { reader.ReadStartElement(); reader.MoveToContent(); while (reader.NodeType != XmlNodeType.EndElement && reader.NodeType != XmlNodeType.None) { if (reader.NamespaceURI == Soap.Namespace || reader.NamespaceURI == Soap12.Namespace || reader.NamespaceURI == null || reader.NamespaceURI.Length == 0) { if (reader.LocalName == Soap.FaultCode || reader.LocalName == Soap12.FaultCode) { if (soap12) { faultCode = ReadSoap12FaultCode(reader, out subcode); } else { faultCode = ReadFaultCode(reader); } } else if (reader.LocalName == Soap.FaultString || reader.LocalName == Soap12.FaultReason) { faultString = reader.ReadElementString(); } else if (reader.LocalName == Soap.FaultActor || reader.LocalName == Soap12.FaultNode) { faultActor = reader.ReadElementString(); } else if (reader.LocalName == Soap.FaultDetail || reader.LocalName == Soap12.FaultDetail) { detail = new XmlDocument().ReadNode(reader); } else if (reader.LocalName == Soap12.FaultRole) { faultRole = reader.ReadElementString(); } else { reader.Skip(); } } else { reader.Skip(); } reader.MoveToContent(); } while (reader.NodeType == XmlNodeType.Whitespace) { reader.Skip(); } if (reader.NodeType == XmlNodeType.None) { reader.Skip(); } else { reader.ReadEndElement(); } } if (detail != null) { return(new SoapException(faultString, faultCode, faultActor, faultRole, detail, subcode, null)); } else { return(new SoapHeaderException(faultString, faultCode, faultActor, faultRole, subcode, null)); } }
/// <include file='doc\SoapHeaderException.uex' path='docs/doc[@for="SoapHeaderException.SoapHeaderException4"]/*' /> // SOAP12: made this internal internal SoapHeaderException(string message, XmlQualifiedName code, string actor, string role, SoapFaultSubcode subcode, Exception innerException) : base(message, code, actor, role, null, subcode, innerException) { }
public SoapFaultSubcode (XmlQualifiedName code, SoapFaultSubcode subcode) { _code = code; _subcode = subcode; }
/// <include file='doc\SoapFaultCodes.uex' path='docs/doc[@for="SoapFaultSubcode.SoapFaultSubcode1"]/*' /> public SoapFaultSubcode(XmlQualifiedName code, SoapFaultSubcode subcode) { this.code = code; this.subcode = subcode; }
private static void WriteFaultCodeValue(XmlWriter writer, XmlQualifiedName code, SoapFaultSubcode subcode) { if (code == null) { return; } writer.WriteStartElement(Soap12.FaultCodeValue, Soap12.Namespace); if (code.Namespace != null && code.Namespace.Length > 0 && writer.LookupPrefix(code.Namespace) == null) { writer.WriteAttributeString("xmlns", "q0", null, code.Namespace); } writer.WriteQualifiedName(code.Name, code.Namespace); writer.WriteEndElement(); // </value> if (subcode != null) { writer.WriteStartElement(Soap12.FaultSubcode, Soap12.Namespace); WriteFaultCodeValue(writer, subcode.Code, subcode.Subcode); writer.WriteEndElement(); // </subcode> } }
public SoapException (string message, XmlQualifiedName code, string actor, string role, string lang, XmlNode detail, SoapFaultSubcode subcode, Exception innerException) { this.code = code; this.subcode = subcode; this.detail = detail; this.actor = actor; this.role = role; this.lang = lang; }
public SoapException (string message, XmlQualifiedName code, SoapFaultSubcode subcode) : base (message) { this.code = code; this.subcode = subcode; }
/// <include file='doc\SoapException.uex' path='docs/doc[@for="SoapException.SoapException6"]/*' /> // SOAP12: made this internal internal SoapException(string message, XmlQualifiedName code, SoapFaultSubcode subcode) : base(message) { this.code = code; this.subcode = subcode; }