using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Configuration;
using System.Collections.Generic;
public static async Task Main()
var container = new ServiceCollection();
container.AddLogging(b => b.AddConsole());
var config = new ConfigurationBuilder().AddInMemoryCollection(new Dictionary<string, string> {
container.Configure<MyOptions>(config.Build());
using(var scope = container.BuildServiceProvider().CreateScope())
var sp = scope.ServiceProvider;
var logger = sp.GetRequiredService<ILogger<Program>>();
var options = sp.GetRequiredService<IOptions<MyOptions>>().Value;
logger.LogInformation(options.Value);
logger.LogInformation(options.Value2);
Console.WriteLine("Finished");
public string Value {get;set;} = "Default1";
public string Value2 {get;set;} = "Default2";