private IConfigurationRoot GetConfigurationRoot(string configurationFilename, bool validateOnly) { Logger.LogInformation("Using the {ConfigurationFilename} configuration file", configurationFilename); var builder = new ConfigurationBuilder() .SetBasePath(Environment.CurrentDirectory) .AddJsonFile(configurationFilename, optional: false, reloadOnChange: true); var uninjectedConfiguration = builder.Build(); if (validateOnly) { // don't try to access KeyVault if only validation is requested: // we might not be running on a machine with KeyVault access. // Validation settings should not contain KeyVault references anyway return(uninjectedConfiguration); } var secretReaderFactory = new ConfigurationRootSecretReaderFactory(uninjectedConfiguration); var cachingSecretReaderFactory = new CachingSecretReaderFactory(secretReaderFactory, KeyVaultSecretCachingTimeout); var secretInjector = cachingSecretReaderFactory.CreateSecretInjector(cachingSecretReaderFactory.CreateSecretReader()); builder = new ConfigurationBuilder() .SetBasePath(Environment.CurrentDirectory) .AddInjectedJsonFile(configurationFilename, secretInjector); return(builder.Build()); }
private IConfigurationRoot GetConfigurationRoot(string configurationFilename, out ISecretInjector secretInjector) { Logger.LogInformation( "Using the {ConfigurationFilename} configuration file", Path.Combine(Environment.CurrentDirectory, configurationFilename)); var builder = new ConfigurationBuilder() .SetBasePath(Environment.CurrentDirectory) .AddJsonFile(configurationFilename, optional: false, reloadOnChange: false); var uninjectedConfiguration = builder.Build(); if (_validateOnly) { secretInjector = null; return(uninjectedConfiguration); } var secretReaderFactory = new ConfigurationRootSecretReaderFactory(uninjectedConfiguration); var cachingSecretReaderFactory = new CachingSecretReaderFactory(secretReaderFactory, KeyVaultSecretCachingTimeout); secretInjector = cachingSecretReaderFactory.CreateSecretInjector(cachingSecretReaderFactory.CreateSecretReader()); builder = new ConfigurationBuilder() .SetBasePath(Environment.CurrentDirectory) .AddInjectedJsonFile(configurationFilename, secretInjector); return(builder.Build()); }
private static IConfigurationRoot GetConfigurationRoot() { var configurationFilename = "Settings.json"; var builder = new ConfigurationBuilder() .SetBasePath(Environment.CurrentDirectory) .AddJsonFile(configurationFilename, optional: false, reloadOnChange: true); var uninjectedConfiguration = builder.Build(); var secretReaderFactory = new ConfigurationRootSecretReaderFactory(uninjectedConfiguration); var cachingSecretReaderFactory = new CachingSecretReaderFactory(secretReaderFactory, KeyVaultSecretCachingTimeout); var secretInjector = cachingSecretReaderFactory.CreateSecretInjector(cachingSecretReaderFactory.CreateSecretReader()); builder = new ConfigurationBuilder() .SetBasePath(Environment.CurrentDirectory) .AddInjectedJsonFile(configurationFilename, secretInjector); return(builder.Build()); }