private Task OnUnconfiguredProjectRenamed(object sender, ProjectRenamedEventArgs e) { SnapshotRenamed?.Invoke(this, e); return(Task.CompletedTask); }
/// <inheritdoc /> protected override async Task InitializeCoreAsync(CancellationToken cancellationToken) { await UpdateProjectContextAndSubscriptionsAsync(); lock (_lock) { if (_isDisposed) { throw new ObjectDisposedException(nameof(DependenciesSnapshotProvider)); } IDisposable unregister = _aggregateSnapshotProvider.RegisterSnapshotProvider(this); _disposables.Add(unregister); _commonServices.Project.ProjectUnloading += OnUnconfiguredProjectUnloadingAsync; _commonServices.Project.ProjectRenamed += OnUnconfiguredProjectRenamedAsync; foreach (Lazy <IProjectDependenciesSubTreeProvider, IOrderPrecedenceMetadataView> provider in _subTreeProviders) { provider.Value.DependenciesChanged += OnSubtreeProviderDependenciesChanged; } _disposables.Add( new DisposableDelegate( () => { _commonServices.Project.ProjectUnloading -= OnUnconfiguredProjectUnloadingAsync; _commonServices.Project.ProjectRenamed -= OnUnconfiguredProjectRenamedAsync; foreach (Lazy <IProjectDependenciesSubTreeProvider, IOrderPrecedenceMetadataView> provider in _subTreeProviders) { provider.Value.DependenciesChanged -= OnSubtreeProviderDependenciesChanged; } })); } return; Task OnUnconfiguredProjectUnloadingAsync(object sender, EventArgs args) { // If our project unloads, we have no more work to do. Notify listeners and clean everything up. SnapshotProviderUnloading?.Invoke(this, new SnapshotProviderUnloadingEventArgs(this)); DisposeCore(); return(Task.CompletedTask); } Task OnUnconfiguredProjectRenamedAsync(object sender, ProjectRenamedEventArgs e) { SnapshotRenamed?.Invoke(this, e); return(Task.CompletedTask); } void OnSubtreeProviderDependenciesChanged(object sender, DependenciesChangedEventArgs e) { if (IsDisposing || IsDisposed || !e.Changes.AnyChanges()) { return; } ITargetFramework targetFramework = string.IsNullOrEmpty(e.TargetShortOrFullName) || TargetFramework.Any.Equals(e.TargetShortOrFullName) ? TargetFramework.Any : _targetFrameworkProvider.GetTargetFramework(e.TargetShortOrFullName !) ?? TargetFramework.Any; UpdateDependenciesSnapshot(targetFramework, e.Changes, catalogs: null, targetFrameworks: default, activeTargetFramework: null, e.Token);