private void OnStartup(object sender, StartupEventArgs e) { var builder = new Microsoft.Extensions.Configuration.ConfigurationBuilder() .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); var builtConfig = builder.Build(); var azureServiceTokenProvider = new AzureServiceTokenProvider(); var keyVaultClient = new KeyVaultClient( new KeyVaultClient.AuthenticationCallback( azureServiceTokenProvider.KeyVaultTokenCallback)); builder.AddAzureKeyVault( $"https://{builtConfig["KeyVaultName"]}.vault.azure.net/", keyVaultClient, new DefaultKeyVaultSecretManager()); Configuration = builder.Build(); var services = new ServiceCollection(); services.AddOptions(); services.Configure <ConfigWrapper>(Configuration); services.AddSingleton <IGraphService, GraphService>(); services.AddSingleton <IHueService, HueService>(); services.AddSingleton <LIFXService, LIFXService>(); services.AddSingleton <LIFXOAuthHelper, LIFXOAuthHelper>(); services.AddSingleton <MainWindow>(); DiagnosticsClient.Initialize(); ServiceProvider = services.BuildServiceProvider(); var mainWindow = ServiceProvider.GetRequiredService <MainWindow>(); mainWindow.Show(); }