/// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="shellGateway">Shell gateway.</param>
        public ExtensionManager(IShellGateway shellGateway)
        {
            if (shellGateway == null)
            {
                throw Error.ArgumentNull("shellGateway");
            }

            _shellGateway = shellGateway;
            _eventList    = new EventHandlerList();
        }
        /// <summary>
        /// Dispose the object.
        /// </summary>
        private void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (_eventList != null)
                {
                    _eventList.Dispose();
                    _eventList = null;
                }

                if (_shellGateway != null)
                {
                    _shellGateway = null;
                }
            }
        }
 public RemoveSolutionReferencesCommand(IServiceProvider serviceProvider, IShellGateway shellGateway)
     : base(serviceProvider, new CommandID(typeof(RemoveSolutionReferencesCommand).GUID, ID), shellGateway)
 {
 }
        protected CleanupCommandBase(IServiceProvider serviceProvider, CommandID commandID, IShellGateway shellGateway)
            : base(OnExecute, null, OnBeforeQueryStatus, commandID)
        {
            this.ServiceProvider = serviceProvider;
            this.ShellGateway    = shellGateway;

            _statusBar = new StatusBar(serviceProvider);
        }