Ejemplo n.º 1
0
        /*----------------------------------------------------------------------------------------*/
        /// <summary>
        /// Releases the specified binding.
        /// </summary>
        /// <param name="binding">The binding.</param>
        public void Release(IBinding binding)
        {
            Ensure.ArgumentNotNull(binding, "binding");
            Ensure.NotDisposed(this);

            lock (_bindings)
            {
                Type service = binding.Service;

                if (Logger.IsDebugEnabled)
                {
                    Logger.Debug("Releasing {0}", Format.Binding(binding));
                }

                if (!_bindings.ContainsKey(service) || !_bindings.Remove(service, binding))
                {
                    throw new InvalidOperationException(ExceptionFormatter.CannotReleaseUnregisteredBinding(binding));
                }
            }
        }