Configuration providers
A configuration provider is an implementation of IConfigurationProvider
that is created by a configuration source, which is an implementation of IConfigurationSource
. The configuration provider then reads the data from somewhere and provides it via Dictionary
.
To add a custom or third-party configuration provider to ASP.NET Core, you will need to call the Add
method on ConfigurationBuilder
and insert the configuration source. This is just an example:
Host.CreateDefaultBuilder(args)     .ConfigureWebHostDefaults(webBuilder =>     {                webBuilder.ConfigureAppConfiguration((builderContext,          config) =>         {             var env = builderContext.HostingEnvironment;             config.SetBasePath(env.ContentRootPath);             config.AddJsonFile(                 "appsettings.json",                 optional: false,                 reloadOnChange: true);             config.AddJsonFile(                 $"appsettings.{env.EnvironmentName}.json",                 optional: true,                 reloadOnChange: true);             // add new configuration source             config.Add(new MyCustomConfigurationSource             {                 SourceConfig = //configure whatever source                 Optional = false,                 ReloadOnChange = true             });             config.AddEnvironmentVariables();         })         .UseStartup<Startup>();     });
Usually, you would create an extension method to add the configuration source more easily:
config.AddMyCustomSource("source", optional: false, Â Â Â Â Â reloadOnChange: true);
A really detailed concrete example about how to create a custom configuration provider has been written by Andrew Lock. You can find this in the Further reading section of this chapter.