本文整理汇总了C#中HostWorkspaceServices类的典型用法代码示例。如果您正苦于以下问题:C# HostWorkspaceServices类的具体用法?C# HostWorkspaceServices怎么用?C# HostWorkspaceServices使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
HostWorkspaceServices类属于命名空间,在下文中一共展示了HostWorkspaceServices类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateService
public IWorkspaceService CreateService(HostWorkspaceServices workspaceServices)
{
// give out new option service per workspace
return new OptionServiceFactory.OptionService(
new GlobalOptionService(_providers, SpecializedCollections.EmptyEnumerable<Lazy<IOptionPersister>>()),
workspaceServices);
}
示例2: GetVisualStudioProjectCache
private static IWorkspaceService GetVisualStudioProjectCache(HostWorkspaceServices workspaceServices)
{
var projectCacheService = new ProjectCacheService(workspaceServices.Workspace, ImplicitCacheTimeoutInMS);
var documentTrackingService = workspaceServices.GetService<IDocumentTrackingService>();
// Subscribe to events so that we can cache items from the active document's project
var manager = new ActiveProjectCacheManager(documentTrackingService, projectCacheService);
// Subscribe to requests to clear the cache
var workspaceCacheService = workspaceServices.GetService<IWorkspaceCacheService>();
if (workspaceCacheService != null)
{
workspaceCacheService.CacheFlushRequested += (s, e) => manager.Clear();
}
// 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)
{
manager.Clear();
}
};
return projectCacheService;
}
示例3: CreateService
public IWorkspaceService CreateService (HostWorkspaceServices workspaceServices)
{
if (microsoftFactory != null) {
return microsoftFactory.CreateService (workspaceServices);
}
return new TemporaryStorageService ();
}
示例4: CreateService
public IWorkspaceService CreateService(HostWorkspaceServices workspaceServices)
{
var optionService = workspaceServices.GetService<IOptionService>();
var errorReportingService = workspaceServices.GetService<IErrorReportingService>();
var errorLoggerService = workspaceServices.GetService<IErrorLoggerService>();
return new ExtensionManager(optionService, errorReportingService, errorLoggerService, _errorHandlers);
}
示例5: CreateService
public IWorkspaceService CreateService(HostWorkspaceServices workspaceServices)
{
var manager = workspaceServices.GetService<VisualStudioMetadataReferenceManager>();
Debug.Assert(manager != null);
return new Service(manager);
}
示例6: CreateService
public IWorkspaceService CreateService(HostWorkspaceServices workspaceServices)
{
if (_singleton == null)
{
_singleton = new DefaultSymbolNavigationService();
}
return _singleton;
}
示例7: CreateService
public IWorkspaceService CreateService(HostWorkspaceServices workspaceServices)
{
if (_singleton == null)
{
var temporaryStorage = workspaceServices.GetService<ITemporaryStorageService>();
Interlocked.CompareExchange(ref _singleton, new VisualStudioMetadataReferenceManager(_serviceProvider, temporaryStorage), null);
}
return _singleton;
}
示例8: CreateService
public IWorkspaceService CreateService(HostWorkspaceServices workspaceServices)
{
// we support active document tracking only for visual studio workspace host.
if (workspaceServices.Workspace is VisualStudioWorkspace)
{
return GetVisualStudioProjectCache(workspaceServices);
}
return GetMiscProjectCache(workspaceServices);
}
示例9: CreateService
public IWorkspaceService CreateService(HostWorkspaceServices workspaceServices)
{
if (_singleton == null)
{
var optionService = workspaceServices.GetService<IOptionService>();
System.Threading.Interlocked.CompareExchange(ref _singleton, new PersistentStorageService(optionService), null);
}
return _singleton;
}
示例10: CreateService
public IWorkspaceService CreateService(HostWorkspaceServices workspaceServices)
{
lock (s_gate)
{
if (s_singleton == null)
{
s_singleton = new VSDialogService(_uiShellService);
}
}
return s_singleton;
}
示例11: CreateService
public IWorkspaceService CreateService(HostWorkspaceServices workspaceServices)
{
lock (s_gate)
{
if (s_singleton == null)
{
s_singleton = new EditorDialogService();
}
}
return s_singleton;
}
示例12: CreateService
public IWorkspaceService CreateService(HostWorkspaceServices workspaceServices)
{
if (cache == null)
{
var service = workspaceServices.GetService<IOptionService>();
var newCache = CreateCache(service);
Interlocked.CompareExchange(ref cache, newCache, null);
}
return cache;
}
示例13: CreateService
public IWorkspaceService CreateService(HostWorkspaceServices workspaceServices)
{
var options = workspaceServices.Workspace.Options;
if (options.GetOption(ServiceComponentOnOffOptions.PackageSearch))
{
// Only support package search in vs workspace.
if (workspaceServices.Workspace is VisualStudioWorkspace)
{
return new PackageSearchService(_serviceProvider, workspaceServices.GetService<IPackageInstallerService>());
}
}
return new NullPackageSearchService();
}
示例14: CreateService
public IWorkspaceService CreateService(HostWorkspaceServices workspaceServices)
{
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;
}
示例15: GetMiscProjectCache
private static IWorkspaceService GetMiscProjectCache(HostWorkspaceServices workspaceServices)
{
if (workspaceServices.Workspace.Kind != WorkspaceKind.Host)
{
return new ProjectCacheService(workspaceServices.Workspace);
}
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;
}