public IWorkspaceService CreateService(HostWorkspaceServices workspaceServices) { if (workspaceServices.Workspace.Kind != WorkspaceKind.Host) { return(new ProjectCacheService(workspaceServices.Workspace)); } var service = new ProjectCacheService( workspaceServices.Workspace, ImplicitCacheTimeoutInMS ); // Also clear the cache when the solution is cleared or removed. workspaceServices.Workspace.WorkspaceChanged += (s, e) => { if ( e.Kind == WorkspaceChangeKind.SolutionCleared || e.Kind == WorkspaceChangeKind.SolutionRemoved ) { service.ClearImplicitCache(); } }; return(service); }
public void Clear() { lock (_guard) { // clear most recent cache ClearMostRecentCache_NoLock(); // clear implicit cache _projectCacheService.ClearImplicitCache(); } }
private static IWorkspaceService GetMiscProjectCache(HostWorkspaceServices workspaceServices) { var projectCacheService = new ProjectCacheService(workspaceServices.Workspace, ImplicitCacheTimeoutInMS); // Also clear the cache when the solution is cleared or removed. workspaceServices.Workspace.WorkspaceChanged += (s, e) => { if (e.Kind == WorkspaceChangeKind.SolutionCleared || e.Kind == WorkspaceChangeKind.SolutionRemoved) { projectCacheService.ClearImplicitCache(); } }; return(projectCacheService); }