Ejemplo n.º 1
0
        public InProcRemoteHostClientProvider(HostWorkspaceServices services)
        {
            _services = services;

            _lazyClient = new AsyncLazy <RemoteHostClient?>(cancellationToken =>
            {
                var optionService = _services.GetRequiredService <IOptionService>();
                if (optionService.GetOption(RemoteTestHostOptions.RemoteHostTest))
                {
                    return(InProcRemoteHostClient.CreateAsync(_services, runCacheCleanup: false).AsNullable());
                }

                return(SpecializedTasks.Null <RemoteHostClient>());
            }, cacheResult: true);
        }
        public InProcRemoteHostClientProvider(HostWorkspaceServices services, RemoteServiceCallbackDispatcherRegistry callbackDispatchers)
        {
            _services = services;

            var testSerializerServiceFactory = ((IMefHostExportProvider)services.HostServices).GetExportedValue <TestSerializerService.Factory>();

            _lazyManager = new Lazy <WorkspaceManager>(
                () => new WorkspaceManager(
                    RemoteAssetStorage ?? new SolutionAssetCache(),
                    testSerializerServiceFactory.SharedTestGeneratorReferences,
                    AdditionalRemoteParts));
            _lazyClient = new AsyncLazy <RemoteHostClient>(
                cancellationToken => InProcRemoteHostClient.CreateAsync(
                    _services,
                    callbackDispatchers,
                    TraceListener,
                    new RemoteHostTestData(_lazyManager.Value, isInProc: true)),
                cacheResult: true);
        }