using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Microsoft.Extensions.Configuration;
using RockLib.Configuration.ProxyFactory;
public interface IRockLibSettings
RockLibAppSettings AppSettings {get;}
public record RockLibAppSettings(Uri[] Urls);
public static void Main()
var configurationBuilder = new ConfigurationBuilder();
configurationBuilder.AddInMemoryCollection(new Dictionary<string, string>()
"AppSettings:Urls:0", "https://niceday/"
"AppSettings:Urls:1", "http://badday/"
IConfiguration configuration = configurationBuilder.Build();
var appSettings = configuration.CreateProxy<IRockLibSettings>();
if (appSettings?.AppSettings?.Urls == null)
Console.WriteLine("not working via RockLib");
foreach(var uri in appSettings.AppSettings.Urls)