Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / WebException.cs / 1305376 / WebException.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Net {
using System;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.Serialization;
using System.Security.Permissions;
/*++
Abstract:
Contains the defintion for the WebException object. This is a subclass of
Exception that contains a WebExceptionStatus and possible a reference to a
WebResponse.
--*/
///
///
/// Provides network communication exceptions to the application.
///
/// This is the exception that is thrown by WebRequests when something untoward
/// happens. It's a subclass of WebException that contains a WebExceptionStatus and possibly
/// a reference to a WebResponse. The WebResponse is only present if we actually
/// have a response from the remote server.
///
///
[Serializable]
public class WebException : InvalidOperationException, ISerializable {
private WebExceptionStatus m_Status = WebExceptionStatus.UnknownError; //Should be changed to GeneralFailure;
private WebResponse m_Response;
[NonSerialized]
private WebExceptionInternalStatus m_InternalStatus = WebExceptionInternalStatus.RequestFatal;
///
///
/// Creates a new instance of the
/// class with the default status
/// from the
/// values.
///
///
public WebException() {
}
///
///
/// Creates a new instance of the class with the specified error
/// message.
///
///
public WebException(string message) : this(message, null) {
}
///
///
/// Creates a new instance of the class with the specified error
/// message and nested exception.
///
/// Message - Message string for exception.
/// InnerException - Exception that caused this exception.
///
///
///
public WebException(string message, Exception innerException) :
base(message, innerException) {
}
public WebException(string message, WebExceptionStatus status) :
this(message, null, status, null) {
}
///
///
/// Creates a new instance of the class with the specified error
/// message and status.
///
/// Message - Message string for exception.
/// Status - Network status of exception
///
///
internal WebException(string message, WebExceptionStatus status, WebExceptionInternalStatus internalStatus, Exception innerException) :
this(message, innerException, status, null, internalStatus) {
}
///
///
/// Creates a new instance of the class with the specified error
/// message, nested exception, status and response.
///
/// Message - Message string for exception.
/// InnerException - The exception that caused this one.
/// Status - Network status of exception
/// Response - The WebResponse we have.
///
///
public WebException(string message,
Exception innerException,
WebExceptionStatus status,
WebResponse response) :
this(message, null, innerException, status, response)
{ }
internal WebException(string message, string data, Exception innerException, WebExceptionStatus status, WebResponse response) :
base(message + (data != null ? ": '" + data + "'" : ""), innerException)
{
m_Status = status;
m_Response = response;
}
internal WebException(string message,
Exception innerException,
WebExceptionStatus status,
WebResponse response,
WebExceptionInternalStatus internalStatus) :
this(message, null, innerException, status, response, internalStatus)
{ }
internal WebException(string message, string data, Exception innerException, WebExceptionStatus status, WebResponse response, WebExceptionInternalStatus internalStatus) :
base(message + (data != null ? ": '" + data + "'" : ""), innerException)
{
m_Status = status;
m_Response = response;
m_InternalStatus = internalStatus;
}
protected WebException(SerializationInfo serializationInfo, StreamingContext streamingContext)
: base(serializationInfo, streamingContext) {
// m_Status = (WebExceptionStatus)serializationInfo.GetInt32("Status");
// m_InternalStatus = (WebExceptionInternalStatus)serializationInfo.GetInt32("InternalStatus");
}
///
[SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Justification = "System.dll is still using pre-v4 security model and needs this demand")]
[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.SerializationFormatter)]
void ISerializable.GetObjectData(SerializationInfo serializationInfo, StreamingContext streamingContext)
{
GetObjectData(serializationInfo, streamingContext);
}
[SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Justification = "System.dll is still using pre-v4 security model and needs this demand")]
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.SerializationFormatter)]
public override void GetObjectData(SerializationInfo serializationInfo, StreamingContext streamingContext){
base.GetObjectData(serializationInfo, streamingContext);
//serializationInfo.AddValue("Status", (int)m_Status, typeof(int));
//serializationInfo.AddValue("InternalStatus", (int)m_InternalStatus, typeof(int));
}
///
///
/// Gets the status of the response.
///
///
public WebExceptionStatus Status {
get {
return m_Status;
}
}
///
///
/// Gets the error message returned from the remote host.
///
///
public WebResponse Response {
get {
return m_Response;
}
}
///
///
/// Gets the error message returned from the remote host.
///
///
internal WebExceptionInternalStatus InternalStatus {
get {
return m_InternalStatus;
}
}
}; // class WebException
internal enum WebExceptionInternalStatus {
RequestFatal = 0,
ServicePointFatal = 1,
Recoverable = 2,
Isolated = 3,
}
} // namespace System.Net
// 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
- TraceHandlerErrorFormatter.cs
- MdImport.cs
- SamlSecurityTokenAuthenticator.cs
- SpecialFolderEnumConverter.cs
- SqlProcedureAttribute.cs
- Graphics.cs
- PenThreadPool.cs
- Restrictions.cs
- Transaction.cs
- WindowsGrip.cs
- BrowserCapabilitiesCompiler.cs
- CapabilitiesAssignment.cs
- ThrowHelper.cs
- TextEffectCollection.cs
- DataListCommandEventArgs.cs
- CorePropertiesFilter.cs
- ParseChildrenAsPropertiesAttribute.cs
- QilUnary.cs
- DoubleKeyFrameCollection.cs
- ValueProviderWrapper.cs
- ContainerAction.cs
- OrderedDictionary.cs
- XmlDomTextWriter.cs
- QueryExtender.cs
- DesignerSerializationOptionsAttribute.cs
- _AutoWebProxyScriptEngine.cs
- TextRangeEditTables.cs
- VirtualPathUtility.cs
- MetadataImporterQuotas.cs
- OleDbWrapper.cs
- ImmutableCollection.cs
- TextRenderingModeValidation.cs
- FontInfo.cs
- RSACryptoServiceProvider.cs
- XmlSerializer.cs
- Utils.cs
- ToolStripControlHost.cs
- SQlBooleanStorage.cs
- DataControlFieldCell.cs
- TerminatorSinks.cs
- DefinitionBase.cs
- WebScriptEnablingBehavior.cs
- XmlHierarchicalDataSourceView.cs
- Style.cs
- WebConfigurationManager.cs
- RegexBoyerMoore.cs
- ValidationEventArgs.cs
- CollaborationHelperFunctions.cs
- SimpleWorkerRequest.cs
- PathFigureCollection.cs
- RichTextBoxAutomationPeer.cs
- DateTimeOffsetConverter.cs
- DataGridColumn.cs
- StringExpressionSet.cs
- QueueProcessor.cs
- SecurityTokenResolver.cs
- UnknownExceptionActionHelper.cs
- ContentType.cs
- MultilineStringConverter.cs
- VisualTreeHelper.cs
- UnionQueryOperator.cs
- EditorPartDesigner.cs
- StorageSetMapping.cs
- ProviderUtil.cs
- DateTimeConverter2.cs
- SimpleApplicationHost.cs
- SemaphoreSlim.cs
- ReturnValue.cs
- SqlProviderUtilities.cs
- Enum.cs
- safesecurityhelperavalon.cs
- HTTPNotFoundHandler.cs
- TraversalRequest.cs
- CompiledRegexRunner.cs
- HostExecutionContextManager.cs
- DataColumnPropertyDescriptor.cs
- BamlWriter.cs
- SoapExtensionStream.cs
- NameScope.cs
- RedBlackList.cs
- ConfigurationSectionGroupCollection.cs
- DatatypeImplementation.cs
- ApplyTemplatesAction.cs
- TextParaClient.cs
- FixedLineResult.cs
- SettingsAttributeDictionary.cs
- LoginDesignerUtil.cs
- PixelFormatConverter.cs
- QilUnary.cs
- CodeRemoveEventStatement.cs
- ServiceProviders.cs
- StateChangeEvent.cs
- CodeCompileUnit.cs
- FixedTextView.cs
- XPathMultyIterator.cs
- DesignerSerializerAttribute.cs
- Line.cs
- UrlMappingCollection.cs
- Pair.cs
- WinFormsSpinner.cs