Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Web / System / Web / Services / Protocols / SoapException.cs / 1305376 / SoapException.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Services.Protocols {
using System;
using System.Collections;
using System.Reflection;
using System.Security.Permissions;
using System.Xml;
using System.Xml.Serialization;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
///
///
/// SoapException is the only mechanism for raising exceptions when a Web
/// Method is called over SOAP. A SoapException can either be generated
/// by the .Net Runtime or by a Web Service Method.
/// The .Net Runtime can generate an SoapException, if a response to a request
/// that is malformed. A Web Service Method can generate a SoapException by simply
/// generating an Exception within the Web Service Method, if the client accessed the method
/// over SOAP. Any time a Web Service Method throws an exception, that exception
/// is caught on the server and wrapped inside a new SoapException.
///
[Serializable]
public class SoapException : SystemException {
XmlQualifiedName code = XmlQualifiedName.Empty;
string actor;
string role;
System.Xml.XmlNode detail;
SoapFaultSubCode subCode;
string lang;
///
///
/// [To be supplied.]
///
public static readonly XmlQualifiedName ServerFaultCode = new XmlQualifiedName(Soap.Code.Server, Soap.Namespace);
///
///
/// [To be supplied.]
///
public static readonly XmlQualifiedName ClientFaultCode = new XmlQualifiedName(Soap.Code.Client, Soap.Namespace);
///
///
/// [To be supplied.]
///
public static readonly XmlQualifiedName VersionMismatchFaultCode = new XmlQualifiedName(Soap.Code.VersionMismatch, Soap.Namespace);
///
///
/// [To be supplied.]
///
public static readonly XmlQualifiedName MustUnderstandFaultCode = new XmlQualifiedName(Soap.Code.MustUnderstand, Soap.Namespace);
///
///
/// [To be supplied.]
///
// NOTE, [....]: The SOAP 1.1 is unclear on whether the detail element can or should be qualified.
// Based on consensus about the intent, we will not qualify it.
public static readonly XmlQualifiedName DetailElementName = new XmlQualifiedName(Soap.Element.FaultDetail, "");
///
public static bool IsServerFaultCode(XmlQualifiedName code) {
return code == ServerFaultCode || code == Soap12FaultCodes.ReceiverFaultCode;
}
///
public static bool IsClientFaultCode(XmlQualifiedName code) {
return code == ClientFaultCode || code == Soap12FaultCodes.SenderFaultCode;
}
///
public static bool IsVersionMismatchFaultCode(XmlQualifiedName code) {
return code == VersionMismatchFaultCode || code == Soap12FaultCodes.VersionMismatchFaultCode;
}
///
public static bool IsMustUnderstandFaultCode(XmlQualifiedName code) {
return code == MustUnderstandFaultCode || code == Soap12FaultCodes.MustUnderstandFaultCode;
}
///
public SoapException() : base(null) {
}
///
///
/// Initializes a new instance of the class, setting to , to
/// and to .
///
public SoapException(string message, XmlQualifiedName code, string actor) : base(message) {
this.code = code;
this.actor = actor;
}
///
///
/// Initializes a new instance of the class, setting to
/// , to to and to .
///
public SoapException(string message, XmlQualifiedName code, string actor, Exception innerException) : base(message, innerException) {
this.code = code;
this.actor = actor;
}
///
///
/// Initializes a new instance of the class, setting to
/// and
///
/// to .
///
public SoapException(string message, XmlQualifiedName code) : base(message) {
this.code = code;
}
///
///
/// Initializes a new instance of the class, setting to
/// , to and
///
/// to .
///
public SoapException(string message, XmlQualifiedName code, Exception innerException) : base(message, innerException) {
this.code = code;
}
///
///
/// [To be supplied.]
///
public SoapException(string message, XmlQualifiedName code, string actor, System.Xml.XmlNode detail) : base(message) {
this.code = code;
this.actor = actor;
this.detail = detail;
}
///
///
/// [To be supplied.]
///
public SoapException(string message, XmlQualifiedName code, string actor, System.Xml.XmlNode detail, Exception innerException) : base(message, innerException) {
this.code = code;
this.actor = actor;
this.detail = detail;
}
///
///
/// [To be supplied.]
///
public SoapException(string message, XmlQualifiedName code, SoapFaultSubCode subCode) : base(message) {
this.code = code;
this.subCode = subCode;
}
///
///
/// [To be supplied.]
///
public 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;
}
///
///
/// [To be supplied.]
///
public SoapException(string message, XmlQualifiedName code, string actor, string role, string lang, System.Xml.XmlNode detail, SoapFaultSubCode subCode, Exception innerException) : base(message, innerException) {
this.code = code;
this.actor = actor;
this.role = role;
this.detail = detail;
this.lang = lang;
this.subCode = subCode;
}
protected SoapException(SerializationInfo info, StreamingContext context) : base(info, context) {
IDictionary list = base.Data;
code = (XmlQualifiedName)list["code"];
actor = (string)list["actor"];
role = (string)list["role"];
// Bug: 323493: XmlNode is not serializable, and I don't think we want to really want to create
// an XmlDocument just to read a XmlNode from string to get the deserialized instance back.
// detail = (XmlNode)list["detail"];
subCode = (SoapFaultSubCode)list["subCode"];
lang = (string)list["lang"];
}
///
///
/// The piece of code that caused the exception.
/// Typically, an URL to a Web Service Method.
///
public string Actor {
get { return actor == null ? string.Empty : actor; }
}
///
///
/// The type of error that occurred.
///
public XmlQualifiedName Code {
get { return code; }
}
// the element. If null, the element was not present in the element.
///
///
/// [To be supplied.]
///
public System.Xml.XmlNode Detail {
get {
return detail;
}
}
///
///
/// [To be supplied.]
///
[ComVisible(false)]
public string Lang {
get { return lang == null ? string.Empty : lang; }
}
// this is semantically the same as Actor so we use the same field but we offer a second property
// in case the user is thinking in soap 1.2
///
///
/// [To be supplied.]
///
[ComVisible(false)]
public string Node {
get { return actor == null ? string.Empty : actor; }
}
///
///
/// [To be supplied.]
///
[ComVisible(false)]
public string Role {
get { return role == null ? string.Empty : role; }
}
///
///
/// [To be supplied.]
///
[ComVisible(false)]
public SoapFaultSubCode SubCode {
get {
return subCode;
}
}
// 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;
}
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.SerializationFormatter)]
public override void GetObjectData(SerializationInfo info, StreamingContext context) {
IDictionary list = Data;
list["code"] = Code;
list["actor"] = Actor;
list["role"] = Role;
// Bug: 323493: XmlNode is not serializable, and I don't think we want to really want to create
// an XmlDocument just to read a XmlNode from string to get the deserialized instance back.
// list["detail"] = Detail;
list["subCode"] = SubCode;
list["lang"] = Lang;
base.GetObjectData(info, context);
}
static SoapException CreateSuppressedException(SoapProtocolVersion soapVersion, string message, Exception innerException) {
return new SoapException(Res.GetString(Res.WebSuppressedExceptionMessage),
soapVersion == SoapProtocolVersion.Soap12
? new XmlQualifiedName(Soap12.Code.Receiver, Soap12.Namespace)
: new XmlQualifiedName(Soap.Code.Server, Soap.Namespace));
}
internal static SoapException Create(SoapProtocolVersion soapVersion, string message, XmlQualifiedName code,
string actor, string role, System.Xml.XmlNode detail,
SoapFaultSubCode subCode, Exception innerException) {
if (System.Web.Services.Configuration.WebServicesSection.Current.Diagnostics.SuppressReturningExceptions) {
return CreateSuppressedException(soapVersion, Res.GetString(Res.WebSuppressedExceptionMessage), innerException);
}
else {
return new SoapException(message, code, actor, role, detail, subCode, innerException);
}
}
internal static SoapException Create(SoapProtocolVersion soapVersion, string message, XmlQualifiedName code, Exception innerException) {
if (System.Web.Services.Configuration.WebServicesSection.Current.Diagnostics.SuppressReturningExceptions) {
return CreateSuppressedException(soapVersion, Res.GetString(Res.WebSuppressedExceptionMessage), innerException);
}
else {
return new SoapException(message, code, innerException);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Services.Protocols {
using System;
using System.Collections;
using System.Reflection;
using System.Security.Permissions;
using System.Xml;
using System.Xml.Serialization;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
///
///
/// SoapException is the only mechanism for raising exceptions when a Web
/// Method is called over SOAP. A SoapException can either be generated
/// by the .Net Runtime or by a Web Service Method.
/// The .Net Runtime can generate an SoapException, if a response to a request
/// that is malformed. A Web Service Method can generate a SoapException by simply
/// generating an Exception within the Web Service Method, if the client accessed the method
/// over SOAP. Any time a Web Service Method throws an exception, that exception
/// is caught on the server and wrapped inside a new SoapException.
///
[Serializable]
public class SoapException : SystemException {
XmlQualifiedName code = XmlQualifiedName.Empty;
string actor;
string role;
System.Xml.XmlNode detail;
SoapFaultSubCode subCode;
string lang;
///
///
/// [To be supplied.]
///
public static readonly XmlQualifiedName ServerFaultCode = new XmlQualifiedName(Soap.Code.Server, Soap.Namespace);
///
///
/// [To be supplied.]
///
public static readonly XmlQualifiedName ClientFaultCode = new XmlQualifiedName(Soap.Code.Client, Soap.Namespace);
///
///
/// [To be supplied.]
///
public static readonly XmlQualifiedName VersionMismatchFaultCode = new XmlQualifiedName(Soap.Code.VersionMismatch, Soap.Namespace);
///
///
/// [To be supplied.]
///
public static readonly XmlQualifiedName MustUnderstandFaultCode = new XmlQualifiedName(Soap.Code.MustUnderstand, Soap.Namespace);
///
///
/// [To be supplied.]
///
// NOTE, [....]: The SOAP 1.1 is unclear on whether the detail element can or should be qualified.
// Based on consensus about the intent, we will not qualify it.
public static readonly XmlQualifiedName DetailElementName = new XmlQualifiedName(Soap.Element.FaultDetail, "");
///
public static bool IsServerFaultCode(XmlQualifiedName code) {
return code == ServerFaultCode || code == Soap12FaultCodes.ReceiverFaultCode;
}
///
public static bool IsClientFaultCode(XmlQualifiedName code) {
return code == ClientFaultCode || code == Soap12FaultCodes.SenderFaultCode;
}
///
public static bool IsVersionMismatchFaultCode(XmlQualifiedName code) {
return code == VersionMismatchFaultCode || code == Soap12FaultCodes.VersionMismatchFaultCode;
}
///
public static bool IsMustUnderstandFaultCode(XmlQualifiedName code) {
return code == MustUnderstandFaultCode || code == Soap12FaultCodes.MustUnderstandFaultCode;
}
///
public SoapException() : base(null) {
}
///
///
/// Initializes a new instance of the class, setting to , to
/// and to .
///
public SoapException(string message, XmlQualifiedName code, string actor) : base(message) {
this.code = code;
this.actor = actor;
}
///
///
/// Initializes a new instance of the class, setting to
/// , to to and to .
///
public SoapException(string message, XmlQualifiedName code, string actor, Exception innerException) : base(message, innerException) {
this.code = code;
this.actor = actor;
}
///
///
/// Initializes a new instance of the class, setting to
/// and
///
/// to .
///
public SoapException(string message, XmlQualifiedName code) : base(message) {
this.code = code;
}
///
///
/// Initializes a new instance of the class, setting to
/// , to and
///
/// to .
///
public SoapException(string message, XmlQualifiedName code, Exception innerException) : base(message, innerException) {
this.code = code;
}
///
///
/// [To be supplied.]
///
public SoapException(string message, XmlQualifiedName code, string actor, System.Xml.XmlNode detail) : base(message) {
this.code = code;
this.actor = actor;
this.detail = detail;
}
///
///
/// [To be supplied.]
///
public SoapException(string message, XmlQualifiedName code, string actor, System.Xml.XmlNode detail, Exception innerException) : base(message, innerException) {
this.code = code;
this.actor = actor;
this.detail = detail;
}
///
///
/// [To be supplied.]
///
public SoapException(string message, XmlQualifiedName code, SoapFaultSubCode subCode) : base(message) {
this.code = code;
this.subCode = subCode;
}
///
///
/// [To be supplied.]
///
public 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;
}
///
///
/// [To be supplied.]
///
public SoapException(string message, XmlQualifiedName code, string actor, string role, string lang, System.Xml.XmlNode detail, SoapFaultSubCode subCode, Exception innerException) : base(message, innerException) {
this.code = code;
this.actor = actor;
this.role = role;
this.detail = detail;
this.lang = lang;
this.subCode = subCode;
}
protected SoapException(SerializationInfo info, StreamingContext context) : base(info, context) {
IDictionary list = base.Data;
code = (XmlQualifiedName)list["code"];
actor = (string)list["actor"];
role = (string)list["role"];
// Bug: 323493: XmlNode is not serializable, and I don't think we want to really want to create
// an XmlDocument just to read a XmlNode from string to get the deserialized instance back.
// detail = (XmlNode)list["detail"];
subCode = (SoapFaultSubCode)list["subCode"];
lang = (string)list["lang"];
}
///
///
/// The piece of code that caused the exception.
/// Typically, an URL to a Web Service Method.
///
public string Actor {
get { return actor == null ? string.Empty : actor; }
}
///
///
/// The type of error that occurred.
///
public XmlQualifiedName Code {
get { return code; }
}
// the element. If null, the element was not present in the element.
///
///
/// [To be supplied.]
///
public System.Xml.XmlNode Detail {
get {
return detail;
}
}
///
///
/// [To be supplied.]
///
[ComVisible(false)]
public string Lang {
get { return lang == null ? string.Empty : lang; }
}
// this is semantically the same as Actor so we use the same field but we offer a second property
// in case the user is thinking in soap 1.2
///
///
/// [To be supplied.]
///
[ComVisible(false)]
public string Node {
get { return actor == null ? string.Empty : actor; }
}
///
///
/// [To be supplied.]
///
[ComVisible(false)]
public string Role {
get { return role == null ? string.Empty : role; }
}
///
///
/// [To be supplied.]
///
[ComVisible(false)]
public SoapFaultSubCode SubCode {
get {
return subCode;
}
}
// 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;
}
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.SerializationFormatter)]
public override void GetObjectData(SerializationInfo info, StreamingContext context) {
IDictionary list = Data;
list["code"] = Code;
list["actor"] = Actor;
list["role"] = Role;
// Bug: 323493: XmlNode is not serializable, and I don't think we want to really want to create
// an XmlDocument just to read a XmlNode from string to get the deserialized instance back.
// list["detail"] = Detail;
list["subCode"] = SubCode;
list["lang"] = Lang;
base.GetObjectData(info, context);
}
static SoapException CreateSuppressedException(SoapProtocolVersion soapVersion, string message, Exception innerException) {
return new SoapException(Res.GetString(Res.WebSuppressedExceptionMessage),
soapVersion == SoapProtocolVersion.Soap12
? new XmlQualifiedName(Soap12.Code.Receiver, Soap12.Namespace)
: new XmlQualifiedName(Soap.Code.Server, Soap.Namespace));
}
internal static SoapException Create(SoapProtocolVersion soapVersion, string message, XmlQualifiedName code,
string actor, string role, System.Xml.XmlNode detail,
SoapFaultSubCode subCode, Exception innerException) {
if (System.Web.Services.Configuration.WebServicesSection.Current.Diagnostics.SuppressReturningExceptions) {
return CreateSuppressedException(soapVersion, Res.GetString(Res.WebSuppressedExceptionMessage), innerException);
}
else {
return new SoapException(message, code, actor, role, detail, subCode, innerException);
}
}
internal static SoapException Create(SoapProtocolVersion soapVersion, string message, XmlQualifiedName code, Exception innerException) {
if (System.Web.Services.Configuration.WebServicesSection.Current.Diagnostics.SuppressReturningExceptions) {
return CreateSuppressedException(soapVersion, Res.GetString(Res.WebSuppressedExceptionMessage), innerException);
}
else {
return new SoapException(message, code, innerException);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ValuePattern.cs
- FormViewRow.cs
- UpdateTranslator.cs
- TextParagraphCache.cs
- TableLayoutSettingsTypeConverter.cs
- TreeNodeClickEventArgs.cs
- ObjectStateEntry.cs
- ReadOnlyDictionary.cs
- BufferedMessageWriter.cs
- FloatUtil.cs
- ColorAnimationUsingKeyFrames.cs
- SQLByte.cs
- CompareValidator.cs
- TCPClient.cs
- Point3DCollection.cs
- ControlFilterExpression.cs
- DetailsViewRow.cs
- ProgressBarRenderer.cs
- ConfigViewGenerator.cs
- EventSinkHelperWriter.cs
- DefaultValidator.cs
- SymbolMethod.cs
- OleDbErrorCollection.cs
- RootContext.cs
- Setter.cs
- CodeParameterDeclarationExpression.cs
- Rotation3D.cs
- SecurityContext.cs
- Helpers.cs
- Missing.cs
- DiscoveryClientReferences.cs
- XmlAnyAttributeAttribute.cs
- XmlBindingWorker.cs
- SqlDataReader.cs
- WSHttpBindingBase.cs
- CreateUserWizardStep.cs
- DiscoveryReferences.cs
- SerializerProvider.cs
- UrlMappingsSection.cs
- SafeHandle.cs
- SharedHttpsTransportManager.cs
- Convert.cs
- DataChangedEventManager.cs
- Certificate.cs
- MetafileHeaderWmf.cs
- TransformedBitmap.cs
- Debug.cs
- ObjectView.cs
- LazyTextWriterCreator.cs
- DataGridItemCollection.cs
- MenuItemCollection.cs
- HttpListenerRequestUriBuilder.cs
- UInt16.cs
- OptimizedTemplateContent.cs
- SoapMessage.cs
- PropertyEntry.cs
- DetailsViewPagerRow.cs
- TrustLevelCollection.cs
- Image.cs
- DeploymentSection.cs
- LicenseContext.cs
- Ops.cs
- BaseDataListActionList.cs
- GridViewCancelEditEventArgs.cs
- XsltArgumentList.cs
- BooleanAnimationUsingKeyFrames.cs
- userdatakeys.cs
- ExtensionSimplifierMarkupObject.cs
- ECDiffieHellmanPublicKey.cs
- XmlTextEncoder.cs
- RawContentTypeMapper.cs
- SqlAliaser.cs
- InputScopeNameConverter.cs
- SynchronousSendBindingElement.cs
- BoundPropertyEntry.cs
- IsolatedStorageFile.cs
- ValidatingPropertiesEventArgs.cs
- HttpWebResponse.cs
- XamlSerializationHelper.cs
- CreateInstanceBinder.cs
- RepeatInfo.cs
- ParallelTimeline.cs
- CustomAttributeBuilder.cs
- DesignerToolboxInfo.cs
- XamlWriter.cs
- DoubleLink.cs
- TreeNodeSelectionProcessor.cs
- TemplateControlBuildProvider.cs
- GetPageNumberCompletedEventArgs.cs
- WorkflowControlClient.cs
- HashCodeCombiner.cs
- SingleConverter.cs
- querybuilder.cs
- ChtmlFormAdapter.cs
- WmlObjectListAdapter.cs
- XmlSchemaObjectCollection.cs
- MDIControlStrip.cs
- LocalFileSettingsProvider.cs
- Keyboard.cs
- DBCommandBuilder.cs