VsTeXProject.VisualStudio.Project.ProjectNode.Dispose C# (CSharp) Method

Dispose() protected method

Disposes the project node object.
protected Dispose ( bool disposing ) : void
disposing bool Flag determining ehether it was deterministic or non deterministic clean up.
return void
        protected override void Dispose(bool disposing)
        {
            if (isDisposed)
            {
                return;
            }

            try
            {
                try
                {
                    UnRegisterProject();
                }
                finally
                {
                    try
                    {
                        RegisterClipboardNotifications(false);
                    }
                    finally
                    {
                        try
                        {
                            if (projectEventsProvider != null)
                            {
                                projectEventsProvider.AfterProjectFileOpened -= OnAfterProjectOpen;
                            }
                            if (TaskProvider != null)
                            {
                                TaskProvider.Tasks.Clear();
                                TaskProvider.Dispose();
                                TaskProvider = null;
                            }

                            if (buildLogger != null)
                            {
                                buildLogger.Shutdown();
                                buildLogger = null;
                            }

                            if (site != null)
                            {
                                site.Dispose();
                            }
                        }
                        finally
                        {
                            buildEngine = null;
                        }
                    }
                }

                if (buildProject != null)
                {
                    buildProject.ProjectCollection.UnloadProject(buildProject);
                    buildProject.ProjectCollection.UnloadProject(buildProject.Xml);
                    buildProject = null;
                }

                if (null != imageHandler)
                {
                    imageHandler.Close();
                    imageHandler = null;
                }
            }
            finally
            {
                base.Dispose(disposing);
                isDisposed = true;
            }
        }
ProjectNode