// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.Configure <CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); services.AddHttpClient(); IConfigReader appConfig = new NetCoreSettingsConfigReader(Configuration); IConfigReader envConfig = new EnvVarsConfigReader(EnvironmentVariableTarget.Process); services // .AddSingleton<IConfigReader>(provider => appConfig) .AddSingleton <IConfigReader>(provider => envConfig) .AddScoped <INamesClient, Names>() // .AddScoped<IFeatureFlags, FeatureFlags>() // .AddScoped<IGiphyClient, Giphy>() ; }
static void Main(string[] args) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); var configuration = builder.Build(); IConfigReader appConfig = new NetCoreSettingsConfigReader(configuration); IConfigReader credKVConfig1 = new CredentialsKeyVaultConfigReader(appConfig); IConfigReader envConfig = new EnvVarsConfigReader(EnvironmentVariableTarget.Machine); IConfigReader credKVConfig2 = new CredentialsKeyVaultConfigReader(envConfig); var serviceProvider = new ServiceCollection() // .AddSingleton<IConfigReader>(provider => appConfig) // .AddSingleton<IConfigReader>(provider => envConfig) // .AddSingleton<IConfigReader>(provider => credKVConfig1) .AddSingleton <IConfigReader>(provider => credKVConfig2) .AddSingleton <IConsumer, ConfigConsumer>() .BuildServiceProvider(); var consumer = serviceProvider.GetService <IConsumer>(); consumer.Consume(); }