Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit 28dd2f3

Browse files
Initializing IUsageService in ServiceProviderPackage
Because it is not currently defined in ServiceProviderPackage it is being handled by MEF. These changes avoid that.
1 parent 8ca54d7 commit 28dd2f3

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/GitHub.VisualStudio/GitHubPackage.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ public GHClient(IProgram program)
112112
[ProvideService(typeof(IMenuProvider), IsAsyncQueryable = true)]
113113
[ProvideService(typeof(IGitHubServiceProvider), IsAsyncQueryable = true)]
114114
[ProvideService(typeof(IUsageTracker), IsAsyncQueryable = true)]
115+
[ProvideService(typeof(IUsageService), IsAsyncQueryable = true)]
115116
[ProvideService(typeof(IGitHubToolWindowManager))]
116117
[Guid(ServiceProviderPackageId)]
117118
public sealed class ServiceProviderPackage : AsyncPackage, IServiceProviderPackage, IGitHubToolWindowManager
@@ -150,6 +151,7 @@ protected override Task InitializeAsync(CancellationToken cancellationToken, IPr
150151
{
151152
AddService(typeof(IGitHubServiceProvider), CreateService, true);
152153
AddService(typeof(IUsageTracker), CreateService, true);
154+
AddService(typeof(IUsageService), CreateService, true);
153155
AddService(typeof(ILoginManager), CreateService, true);
154156
AddService(typeof(IMenuProvider), CreateService, true);
155157
AddService(typeof(IGitHubToolWindowManager), CreateService, true);
@@ -236,11 +238,16 @@ async Task<object> CreateService(IAsyncServiceContainer container, CancellationT
236238
var sp = await GetServiceAsync(typeof(IGitHubServiceProvider)) as IGitHubServiceProvider;
237239
return new MenuProvider(sp);
238240
}
241+
else if (serviceType == typeof(IUsageService))
242+
{
243+
var sp = await GetServiceAsync(typeof(IGitHubServiceProvider)) as IGitHubServiceProvider;
244+
return new UsageService(sp);
245+
}
239246
else if (serviceType == typeof(IUsageTracker))
240247
{
241248
await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
249+
var usageService = await GetServiceAsync(typeof(IUsageService)) as IUsageService;
242250
var serviceProvider = await GetServiceAsync(typeof(IGitHubServiceProvider)) as IGitHubServiceProvider;
243-
var usageService = serviceProvider.GetService<IUsageService>();
244251
return new UsageTracker(serviceProvider, usageService);
245252
}
246253
else if (serviceType == typeof(IGitHubToolWindowManager))

0 commit comments

Comments
 (0)