private async Task <object> CreateReAttachDebuggerAsync(IAsyncServiceContainer container, CancellationToken cancellationToken, Type serviceType) { var service = new ReAttachDebugger(); await service.InitializeAsync(this, _history, cancellationToken); return(service); }
private bool EnsureDebuggerService() { if (_debugger != null) { return(true); } ThreadHelper.JoinableTaskFactory.Run(async() => { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); _debugger = (await _package.GetServiceAsync(typeof(ReAttachDebugger))) as ReAttachDebugger; }); return(_debugger != null); }
protected override async Task InitializeAsync(System.Threading.CancellationToken cancellationToken, IProgress <VS.ServiceProgressData> progress) { await JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); await base.InitializeAsync(cancellationToken, progress); Reporter = Reporter ?? new ReAttachTraceReporter(); History = History ?? new ReAttachHistory(new ReAttachRegistryRepository(this)); Ui = Ui ?? await ReAttachUi.InitAsync(this); Debugger = Debugger ?? await ReAttachDebugger.InitAsync(this); History.Load(); Ui.Update(); var callback = new ServiceCreatorCallback(CreateBusService); ((IServiceContainer)this).AddService(typeof(IReAttachBusService), callback); }