예제 #1
0
        public void Dispose()
        {
            if (disposed.Signal() == false)
            {
                return;
            }
            var channel = GetScopeHolder();

            if (channel == null)
            {
                return;
            }
            var extension = channel.Extensions.Find <WcfOperationScopeHolder>();

            if (extension != null && channel.Extensions.Remove(extension))
            {
                extension.Dispose();
            }
        }
        public void Dispose()
        {
            if (!_disposed.Signal())
            {
                return;
            }

            lock (_children)
            {
                foreach (var child in _children)
                {
                    child.Dispose();
                }

                _children.Clear();
            }

            WindsorLifeTimeScope.Dispose();
            _transientBurdens.Reverse().ToList().ForEach(b => b.Release());
        }
        public void Dispose()
        {
            if (!_disposed.Signal())
            {
                return;
            }

            lock (_children)
            {
                foreach (var child in _children)
                {
                    child.Dispose();
                }

                _children.Clear();
            }

            foreach (var instance in _resolvedInstances)
            {
                _container.Release(instance);
            }

            WindsorLifeTimeScope.Dispose();
        }