private void StartImplicitOperation(ImplicitOperationScope scope)
        {
            if (!this.IsTrackingEnabled || this.currentAtomicOperationScope != null)
            {
                return;
            }

            scope.Level = this.implicitOperationNestingCounter;

            if (this.implicitOperationNestingCounter == 0)
            {
                this.StartOperation(scope.Name);
            }

            this.implicitOperationNestingCounter++;
        }
        private void EndImplicitOperation(ImplicitOperationScope scope)
        {
            if (!this.IsTrackingEnabled || this.currentAtomicOperationScope != null)
            {
                return;
            }

            this.implicitOperationNestingCounter--;

            if (scope.Level != this.implicitOperationNestingCounter)
            {
                throw new ArgumentException("Implicit operations closed in wrong order");
            }

            if (this.implicitOperationNestingCounter == 0)
            {
                this.EndOperation();
            }
        }
        private void StartImplicitOperation( ImplicitOperationScope scope )
        {
            if (!this.IsTrackingEnabled || this.currentAtomicOperationScope != null)
            {
                return;
            }

            scope.Level = this.implicitOperationNestingCounter;

            if (this.implicitOperationNestingCounter == 0)
            {
                this.StartOperation(scope.Name);
            }

            this.implicitOperationNestingCounter++;
        }
        private void EndImplicitOperation(ImplicitOperationScope scope)
        {
            if (!this.IsTrackingEnabled || this.currentAtomicOperationScope != null)
            {
                return;
            }

            this.implicitOperationNestingCounter--;

            if (scope.Level != this.implicitOperationNestingCounter)
            {
                throw new ArgumentException("Implicit operations closed in wrong order");
            }

            if (this.implicitOperationNestingCounter == 0)
            {
                this.EndOperation();
            }
        }