using System.Reflection; using Microsoft.Extensions.Configuration; namespace Luna.Configuration.Services.Agents; internal class AgentOptionsConfigurationProvider(IEnumerable agentOptions) : ConfigurationProvider { public override void Load() { foreach (var options in agentOptions) { var keyPrefix = $"Agents:{options.Name}"; foreach (var property in options.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public)) { Data[$"{keyPrefix}:{property.Name}"] = property.GetValue(options)?.ToString(); } } } }