private void ImportsMonitor_ImportsChanged(object sender, ImportsMonitor.ImportsChangedEventArgs e) { Trace.TraceInformation($"{nameof(ImportsHierarchyNodeManager)}.{nameof(ImportsHierarchyNodeManager.ImportsMonitor_ImportsChanged)}"); if (this.vsSolution == null) { lock (this) { if (this.vsSolution == null) { this.vsSolution = (IVsSolution)this.sp.GetService(typeof(SVsSolution)); this.currentHierarchy = new ImportsHierarchyNode(this.package); this.vsSolution.AddVirtualProject( this.currentHierarchy, (uint)(__VSADDVPFLAGS.ADDVP_AddToProjectWindow | __VSADDVPFLAGS.ADDVP_ExcludeFromBuild | __VSADDVPFLAGS.ADDVP_ExcludeFromCfgUI | __VSADDVPFLAGS.ADDVP_ExcludeFromDebugLaunch | __VSADDVPFLAGS.ADDVP_ExcludeFromDeploy | __VSADDVPFLAGS.ADDVP_ExcludeFromEnumOutputs | __VSADDVPFLAGS.ADDVP_ExcludeFromSCC)); } } } this.currentHierarchy.UpdateItems(e.ImportPaths); }
private void SolutionMonitor_SolutionClosing(object sender, EventArgs e) { Trace.TraceInformation($"{nameof(ImportsHierarchyNodeManager)}.{nameof(ImportsHierarchyNodeManager.SolutionMonitor_SolutionClosing)}"); lock (this) { this.RemoveCurrentNode(); this.vsSolution = null; this.currentHierarchy = null; } }