Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Dispatcher / ExceptionHandler.cs / 1 / ExceptionHandler.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Dispatcher { using System.Runtime.ConstrainedExecution; using System.Diagnostics; using System.ServiceModel; using System.ServiceModel.Diagnostics; using System.Security.Permissions; using System.Security; public abstract class ExceptionHandler { static readonly ExceptionHandler alwaysHandle = new AlwaysHandleExceptionHandler(); ////// Critical - this delegate is called from within a ConstrainedExecutionRegion /// must not be settable from PT code /// [SecurityCritical] static ExceptionHandler asynchronousThreadExceptionHandler; static ExceptionHandler transportExceptionHandler = alwaysHandle; public static ExceptionHandler AlwaysHandle { get { return alwaysHandle; } } public static ExceptionHandler AsynchronousThreadExceptionHandler { ////// Critical - access critical field /// Safe - ok for get-only access /// [SecurityCritical, SecurityTreatAsSafe] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] get { return asynchronousThreadExceptionHandler; } ////// Critical - sets a critical field /// Safe - protected with LinkDemand /// [SecurityCritical, SecurityTreatAsSafe] [SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode=true)] set { asynchronousThreadExceptionHandler = value; } } public static ExceptionHandler TransportExceptionHandler { get { return transportExceptionHandler; } set { transportExceptionHandler = value; } } // Returns true if the exception has been handled. If it returns false or // throws a different exception, the original exception will be rethrown. public abstract bool HandleException(Exception exception); class AlwaysHandleExceptionHandler : ExceptionHandler { ////// RequiresReview - this function can be called from within a CER, must not call into PT code /// [SecurityRequiresReview] public override bool HandleException(Exception exception) { return true; } } internal static bool HandleTransportExceptionHelper(Exception exception) { if (exception == null) { DiagnosticUtility.DebugAssert("Null exception passed to HandleTransportExceptionHelper."); throw DiagnosticUtility.ExceptionUtility.ThrowHelperInternal(false); } ExceptionHandler handler = TransportExceptionHandler; if (handler == null) { return false; } try { if (!handler.HandleException(exception)) { return false; } } catch (Exception thrownException) { if (DiagnosticUtility.IsFatal(thrownException)) { throw; } if (DiagnosticUtility.ShouldTraceError) { DiagnosticUtility.ExceptionUtility.TraceHandledException(thrownException, TraceEventType.Error); } return false; } if (DiagnosticUtility.ShouldTraceError) { DiagnosticUtility.ExceptionUtility.TraceHandledException(exception, TraceEventType.Error); } return true; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- _BufferOffsetSize.cs
- SByte.cs
- InfoCardPolicy.cs
- IdentityNotMappedException.cs
- HttpModuleActionCollection.cs
- SingleAnimationUsingKeyFrames.cs
- DataGrid.cs
- ContentWrapperAttribute.cs
- Point.cs
- _ProxyRegBlob.cs
- SingleResultAttribute.cs
- TimeSpanConverter.cs
- HwndSource.cs
- StringValidatorAttribute.cs
- MultipleViewProviderWrapper.cs
- XmlSchemaImporter.cs
- SelectionChangedEventArgs.cs
- unsafenativemethodstextservices.cs
- OrderPreservingPipeliningMergeHelper.cs
- PersonalizationStateQuery.cs
- DataObject.cs
- FileDialogCustomPlace.cs
- WebBrowserEvent.cs
- QilGenerator.cs
- HelpFileFileNameEditor.cs
- ExecutedRoutedEventArgs.cs
- sqlinternaltransaction.cs
- CSharpCodeProvider.cs
- OptimalBreakSession.cs
- WindowsIPAddress.cs
- ConfigurationManagerInternal.cs
- CustomSignedXml.cs
- PermissionToken.cs
- DataGridViewControlCollection.cs
- ContextStack.cs
- XmlSerializableWriter.cs
- ErrorInfoXmlDocument.cs
- NativeMethods.cs
- Camera.cs
- TransformDescriptor.cs
- _NtlmClient.cs
- SqlDependencyUtils.cs
- OdbcReferenceCollection.cs
- FileLogRecordStream.cs
- ExpressionPrefixAttribute.cs
- ParseHttpDate.cs
- File.cs
- SpecialNameAttribute.cs
- XhtmlBasicListAdapter.cs
- Condition.cs
- WebPartEditorApplyVerb.cs
- MemberRelationshipService.cs
- SizeAnimationBase.cs
- XmlLanguage.cs
- SByte.cs
- XAMLParseException.cs
- Vector3DCollectionConverter.cs
- DbXmlEnabledProviderManifest.cs
- DatasetMethodGenerator.cs
- DirectoryNotFoundException.cs
- MatrixAnimationBase.cs
- ContractBase.cs
- RawUIStateInputReport.cs
- PropertyMetadata.cs
- ModuleBuilder.cs
- DataControlPagerLinkButton.cs
- CalendarTable.cs
- Choices.cs
- SystemPens.cs
- TransactionState.cs
- DataGridViewColumn.cs
- ServicePointManager.cs
- _CookieModule.cs
- PerformanceCounter.cs
- DataServiceQueryProvider.cs
- ObjectParameter.cs
- PageRanges.cs
- embossbitmapeffect.cs
- _AutoWebProxyScriptWrapper.cs
- IdleTimeoutMonitor.cs
- OnOperation.cs
- ObjectNotFoundException.cs
- BitmapImage.cs
- TrackBar.cs
- _NetRes.cs
- SchemaManager.cs
- HttpResponse.cs
- InstanceKeyCollisionException.cs
- DocumentCollection.cs
- GeneratedView.cs
- DataBoundControlAdapter.cs
- HttpModulesSection.cs
- BufferBuilder.cs
- OpCellTreeNode.cs
- MissingFieldException.cs
- CompilerHelpers.cs
- SafeThemeHandle.cs
- TransformCollection.cs
- RevocationPoint.cs
- SessionStateModule.cs