public DteWithEvents(DTE dte, IIdeTracer tracer) { DTE = dte; SolutionEvents = dte.Events.SolutionEvents; ProjectItemsEvents = ((Events2)dte.Events).ProjectItemsEvents; DocumentEvents = ((Events2) dte.Events).DocumentEvents; BuildEvents = ((Events2) dte.Events).BuildEvents; CodeModelEvents = ((Events2)dte.Events).CodeModelEvents; SolutionEventsListener = new SolutionEventsListener(); FileChangeEventsListener = new FileChangeEventsListener(tracer); SolutionEvents.BeforeClosing += FileChangeEventsListener.StopListening; }