예제 #1
0
        private void PopContext()
        {
            if ((OperationContext.DisableAsyncFlow ? s_currentScope : s_asyncCurrentScope.Value) != this)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.SFxInterleavedContextScopes0));
            }

            if (OperationContext.Current != _currentContext)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.SFxContextModifiedInsideScope0));
            }

            if (OperationContext.DisableAsyncFlow)
            {
                s_currentScope = _originalScope;
            }
            else
            {
                s_asyncCurrentScope.Value = _originalScope;
            }

            OperationContext.Current = _originalContext;

            if (_currentContext != null)
            {
                _currentContext.SetClientReply(null, false);
            }
        }
예제 #2
0
        private void PopContext()
        {
            if (OperationContextScope.s_currentScope != this)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SRServiceModel.SFxInterleavedContextScopes0));
            }

            if (OperationContext.Current != _currentContext)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SRServiceModel.SFxContextModifiedInsideScope0));
            }

            OperationContextScope.s_currentScope = _originalScope;
            OperationContext.Current             = _originalContext;

            if (_currentContext != null)
            {
                _currentContext.SetClientReply(null, false);
            }
        }