Dispose() public method

public Dispose ( ) : void
return void
        protected override void OnDestroyed()
        {
            try
            {
                if (disposed)
                {
                    return;
                }

                if (project.App.ActiveProject == editedProject)
                {
                    project.App.ActiveProject = null;
                }

                disposed                             = true;
                frontend.disposed                    = true;
                editedProject.SignalAdded           -= OnSignalAdded;
                editedProject.SignalRemoved         -= OnSignalRemoved;
                editedProject.SignalChanged         -= OnSignalChanged;
                editedProject.ComponentNameChanged  -= OnComponentNameChanged;
                editedProject.BackendChanged        -= OnProjectBackendChanged;
                editedProject.ComponentTypesChanged -= OnComponentTypesChanged;
                project.BackendChanged              -= OnProjectBackendChanged;

                if (session != null)
                {
                    session.Dispose();
                    session = null;
                }

                if (!autoCommitChanges)
                {
                    editedProject.Dispose();
                }

                System.Runtime.Remoting.RemotingServices.Disconnect(frontend);
                frontend   = null;
                rootWidget = null;
                selection  = null;
            }
            finally
            {
                base.OnDestroyed();
            }
        }