private List <object> BeginDispose() { List <object> toDispose; lock (ResolvedServices) { if (_disposed) { return(null); } _disposed = true; toDispose = _disposables; _disposables = null; ResolvedServices.Clear(); } return(toDispose); }
public void Dispose() { lock (ResolvedServices) { if (_disposeCalled) { return; } _disposeCalled = true; if (_disposables != null) { for (var i = _disposables.Count - 1; i >= 0; i--) { var disposable = _disposables[i]; disposable.Dispose(); } _disposables.Clear(); } ResolvedServices.Clear(); } }