private void Dispose(bool disposing) { if (disposing) { if (!LogicalOperation.IsRunningInAdapter && LogicalOperation.GetLogicalOperationStack().Peek() != this.data) { throw new InvalidOperationException("Logical operation stack has been corrupted"); } LogicalOperation.StopLogicalOperation(); Trace.CorrelationManager.ActivityId = this.previousActivityId; } }