Stetic.Project.Dispose C# (CSharp) Method

Dispose() public method

public Dispose ( ) : void
return void
        public void Dispose()
        {
            if (app is IsolatedApplication) {
                IsolatedApplication iapp = app as IsolatedApplication;
                iapp.BackendChanging -= OnBackendChanging;
                iapp.BackendChanged -= OnBackendChanged;
            }

            if (tmpProjectFile != null && File.Exists (tmpProjectFile)) {
                File.Delete (tmpProjectFile);
                tmpProjectFile = null;
            }
            if (backend != null)
                backend.Dispose ();
            if (Disposed != null)
                Disposed (this, EventArgs.Empty);
            System.Runtime.Remoting.RemotingServices.Disconnect (this);
        }

Usage Example

        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();
            }
        }