Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / OperationContextScope.cs / 1 / OperationContextScope.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel { using System; using System.ServiceModel.Channels; using System.Threading; public sealed class OperationContextScope : IDisposable { [ThreadStatic] static OperationContextScope currentScope; OperationContext currentContext; bool disposed; readonly OperationContext originalContext = OperationContext.Current; readonly OperationContextScope originalScope = OperationContextScope.currentScope; readonly Thread thread = Thread.CurrentThread; public OperationContextScope(IContextChannel channel) { this.PushContext(new OperationContext(channel)); } public OperationContextScope(OperationContext context) { this.PushContext(context); } public void Dispose() { if (!this.disposed) { this.disposed = true; this.PopContext(); } } void PushContext(OperationContext context) { this.currentContext = context; OperationContextScope.currentScope = this; OperationContext.Current = this.currentContext; } void PopContext() { if (this.thread != Thread.CurrentThread) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.SFxInvalidContextScopeThread0))); if (OperationContextScope.currentScope != this) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.SFxInterleavedContextScopes0))); if (OperationContext.Current != this.currentContext) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.SFxContextModifiedInsideScope0))); OperationContextScope.currentScope = this.originalScope; OperationContext.Current = this.originalContext; if (this.currentContext != null) this.currentContext.SetClientReply(null, false); } } } // 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
- MultitargetUtil.cs
- DuplicateWaitObjectException.cs
- UnsafeNetInfoNativeMethods.cs
- SqlDataSource.cs
- CacheMode.cs
- DataViewSettingCollection.cs
- SqlWorkflowInstanceStoreLock.cs
- IntegerValidatorAttribute.cs
- Mutex.cs
- AuthenticateEventArgs.cs
- BookmarkOptionsHelper.cs
- Italic.cs
- XmlUtilWriter.cs
- CertificateManager.cs
- TableProviderWrapper.cs
- Size3DConverter.cs
- RowParagraph.cs
- PointLightBase.cs
- LinearGradientBrush.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- DbFunctionCommandTree.cs
- PostBackTrigger.cs
- WpfPayload.cs
- InnerItemCollectionView.cs
- CustomAssemblyResolver.cs
- RequestCache.cs
- MemoryMappedView.cs
- ThreadStateException.cs
- WmlSelectionListAdapter.cs
- HttpPostLocalhostServerProtocol.cs
- UnsafeNativeMethods.cs
- DataSysAttribute.cs
- UdpConstants.cs
- ConfigXmlWhitespace.cs
- SqlUserDefinedAggregateAttribute.cs
- GridViewPageEventArgs.cs
- PageCodeDomTreeGenerator.cs
- AssemblyName.cs
- ComponentCodeDomSerializer.cs
- PolyQuadraticBezierSegment.cs
- _Rfc2616CacheValidators.cs
- PanelDesigner.cs
- FontCollection.cs
- Stopwatch.cs
- ResourceContainer.cs
- _RequestLifetimeSetter.cs
- BitArray.cs
- AssociationSet.cs
- dataprotectionpermission.cs
- RectAnimation.cs
- MessageQueueException.cs
- VideoDrawing.cs
- EntityDataSourceEntitySetNameItem.cs
- HtmlHistory.cs
- printdlgexmarshaler.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- RuntimeConfig.cs
- ColorAnimationBase.cs
- FrameSecurityDescriptor.cs
- CompoundFileReference.cs
- BackStopAuthenticationModule.cs
- BitmapPalette.cs
- DataGridViewColumn.cs
- DelimitedListTraceListener.cs
- SslSecurityTokenParameters.cs
- SubordinateTransaction.cs
- ZipIOCentralDirectoryBlock.cs
- XhtmlConformanceSection.cs
- VerificationAttribute.cs
- ExpressionBuilder.cs
- TdsParserHelperClasses.cs
- Button.cs
- DataServiceResponse.cs
- Freezable.cs
- ConstrainedDataObject.cs
- NumberFunctions.cs
- EventDescriptor.cs
- BufferedGraphicsContext.cs
- ScaleTransform.cs
- ExtensionQuery.cs
- PathSegmentCollection.cs
- MenuTracker.cs
- TreeViewBindingsEditorForm.cs
- CompositeDispatchFormatter.cs
- HierarchicalDataBoundControl.cs
- LineInfo.cs
- DropTarget.cs
- TCEAdapterGenerator.cs
- SmtpAuthenticationManager.cs
- FormViewInsertEventArgs.cs
- OracleLob.cs
- OuterGlowBitmapEffect.cs
- MachineKeyValidationConverter.cs
- OutputScopeManager.cs
- RelatedView.cs
- Brush.cs
- SortAction.cs
- FixedHighlight.cs
- ColorConverter.cs
- Decoder.cs