Microsoft.Extensions.Configuration
is combined with a core configuration abstraction under Microsoft.Extensions.Configuration.Abstractions
that allows for building different kinds of configuration providers to retrieve key/value pair configuration values from in the form of IConfiguration
. There are a number of built-in configuration provider implementations to read from environment variables, in-memory collections, JSON, INI or XML files. Aside from the built-in variations, there are more shipped libraries shipped by community for integration with various configuration service and other data sources.
using Microsoft.Extensions.Configuration;
var configurationBuilder = new ConfigurationBuilder();
configurationBuilder.AddInMemoryCollection(
new Dictionary<string, string?>
{
["Setting1"] = "value",
["MyOptions:Enabled"] = bool.TrueString,
});
configurationBuilder.AddInMemoryCollection(
new Dictionary<string, string?>
{
["Setting2"] = "value2",
["MyOptions:Enabled"] = bool.FalseString,
});
var config = configurationBuilder.Build();
// note case-insensitive
Console.WriteLine(config["setting1"]);
Console.WriteLine(config["setting2"]);
// note last in wins
Console.WriteLine(config["MyOptions:Enabled"]);
The main types provided by this library are:
Microsoft.Extensions.Configuration.ConfigurationBuilder
Microsoft.Extensions.Configuration.ConfigurationManager
Microsoft.Extensions.Configuration.ConfigurationRoot
Microsoft.Extensions.Configuration.ConfigurationSection
Microsoft.Extensions.Configuration is released as open source under the MIT license. Bug reports and contributions are welcome at the GitHub repository.