Ejemplo n.º 1
0
        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();
            }
        }