public static ApiProfiles GetProfiles() { ServiceProvider serviceProvider; var services = new ServiceCollection(); services.AddOptions(); var config = new ConfigurationBuilder() .AddJsonFile("test.settings.json") .Build(); ApiProfiles profiles = new ApiProfiles(); var profileConfigs = config.GetSection("ApiProfiles").GetChildren(); profileConfigs.ToList().ForEach(p => { profiles.Add(p.Key, p.Get <ApiProfile>()); }); config.GetSection("ApiProfiles").Bind(profiles); services.AddSingleton(profiles); serviceProvider = services.BuildServiceProvider(); return(serviceProvider.GetRequiredService <ApiProfiles>()); }
public TaxController(ApiProfiles profiles) { calculators = AppDomain.CurrentDomain.GetAssemblies().SelectMany(x => x.GetTypes()) .Where(x => typeof(ICalculator).IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract) .Select(x => (ICalculator)Activator.CreateInstance(x)).ToList(); engine = new TaxService(profiles); }