internal /*for testing purposes*/ SonarAnalyzerManager(IServiceProvider serviceProvider, Workspace workspace, ISolutionAnalysisRequester solutionAnalysisRequester) { if (serviceProvider == null) { throw new ArgumentNullException(nameof(serviceProvider)); } if (workspace == null) { throw new ArgumentNullException(nameof(workspace)); } this.workspace = workspace; this.activeSolutionBoundTracker = serviceProvider.GetMefService <IActiveSolutionBoundTracker>(); if (this.activeSolutionBoundTracker == null) { Debug.Fail($"Could not get {nameof(IActiveSolutionBoundTracker)}"); } this.solutionAnalysisRequester = solutionAnalysisRequester; this.activeSolutionBoundTracker.SolutionBindingChanged += this.ActiveSolutionBoundTracker_SolutionBindingChanged; SonarAnalysisContext.ShouldAnalysisBeDisabled = tree => ShouldAnalysisBeDisabledOnTree(tree); }
internal /*for testing purposes*/ SonarAnalyzerManager(IServiceProvider serviceProvider, Workspace workspace, ISolutionAnalysisRequester solutionAnalysisRequester) { if (serviceProvider == null) { throw new ArgumentNullException(nameof(serviceProvider)); } if (workspace == null) { throw new ArgumentNullException(nameof(workspace)); } this.workspace = workspace; this.activeSolutionBoundTracker = serviceProvider.GetMefService<IActiveSolutionBoundTracker>(); if (this.activeSolutionBoundTracker == null) { Debug.Fail($"Could not get {nameof(IActiveSolutionBoundTracker)}"); } this.solutionAnalysisRequester = solutionAnalysisRequester; this.activeSolutionBoundTracker.SolutionBindingChanged += this.ActiveSolutionBoundTracker_SolutionBindingChanged; SonarAnalysisContext.ShouldAnalysisBeDisabled = tree => ShouldAnalysisBeDisabledOnTree(tree); }