private void RemoveMetadataReferenceCore(VisualStudioMetadataReference reference, bool disposeReference) { lock (_gate) { _metadataReferences.Remove(reference); } if (_pushingChangesToWorkspaceHosts) { var snapshot = reference.CurrentSnapshot; this.ProjectTracker.NotifyWorkspaceHosts(host => host.OnMetadataReferenceRemoved(this.Id, snapshot)); } reference.UpdatedOnDisk -= OnImportChanged; if (disposeReference) { reference.Dispose(); } }
private void AddMetadataReferenceCore(VisualStudioMetadataReference reference) { lock (_gate) { _metadataReferences.Add(reference); } if (_pushingChangesToWorkspaceHosts) { var snapshot = reference.CurrentSnapshot; this.ProjectTracker.NotifyWorkspaceHosts(host => host.OnMetadataReferenceAdded(this.Id, snapshot)); } reference.UpdatedOnDisk += OnImportChanged; }