Provides abstractions of key-value pair based configuration. Interfaces defined in this package are implemented by classes in [Microsoft.Extensions.Configuration](https://www.nuget.org/packages/Microsoft.Extensions.Configuration/) and other configuration packages.
+
## Key Features
<!-- The key features of this package -->
-*
-*
-*
+* Abstractions for string key-value pair configuration sources and sections
+* Path conventions of keys establishing a heirachy of values
+* Support for multiple configuration sources, aggregating and defining precdence for values
+* Support for reload on change
## How to Use
Console.WriteLine(options.NamedProperty); // returns "value for named property"
```
+
## Main Types
<!-- The main types provided in this library -->
The main types provided by this library are:
-* [`Microsoft.Extensions.Configuration.IConfiguration`](https://learn.microsoft.com/dotnet/api/microsoft.extensions.configuration.iconfiguration)
-* [`Microsoft.Extensions.Configuration.IConfigurationBuilder`](https://learn.microsoft.com/dotnet/api/microsoft.extensions.configuration.iconfigurationbuilder)
-* [`Microsoft.Extensions.Configuration.IConfigurationProvider`](https://learn.microsoft.com/dotnet/api/microsoft.extensions.configuration.iconfigurationprovider)
-* [`Microsoft.Extensions.Configuration.IConfigurationRoot`](https://learn.microsoft.com/dotnet/api/microsoft.extensions.configuration.iconfigurationroot)
-* [`Microsoft.Extensions.Configuration.IConfigurationSection`](https://learn.microsoft.com/dotnet/api/microsoft.extensions.configuration.iconfigurationsection)
+* `Microsoft.Extensions.Configuration.IConfiguration`
+* `Microsoft.Extensions.Configuration.IConfigurationBuilder`
+* `Microsoft.Extensions.Configuration.IConfigurationProvider`
+* `Microsoft.Extensions.Configuration.IConfigurationRoot`
+* `Microsoft.Extensions.Configuration.IConfigurationSection`
## Additional Documentation
## Related Packages
<!-- The related packages associated with this package -->
+* [Microsoft.Extensions.Configuration](https://www.nuget.org/packages/Microsoft.Extensions.Configuration)
+* [Microsoft.Extensions.Configuration.Binder](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.Binder)
+* [Microsoft.Extensions.Configuration.CommandLine](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.CommandLine)
+* [Microsoft.Extensions.Configuration.EnvironmentVariables](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.EnvironmentVariables)
+* [Microsoft.Extensions.Configuration.FileExtensions](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.FileExtensions)
+* [Microsoft.Extensions.Configuration.Ini](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.Ini)
+* [Microsoft.Extensions.Configuration.Json](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.Json)
+* [Microsoft.Extensions.Configuration.UserSecrets](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.UserSecrets)
+* [Microsoft.Extensions.Configuration.Xml](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.Xml)
## Feedback & Contributing
<!-- How to provide feedback on this package and contribute to it -->
-Microsoft.Extensions.Configuration.Abstractions is released as open source under the [MIT license](https://licenses.nuget.org/MIT). Bug reports and contributions are welcome at [the GitHub repository](https://github.com/dotnet/runtime).
\ No newline at end of file
+Microsoft.Extensions.Caching.Abstractions is released as open source under the [MIT license](https://licenses.nuget.org/MIT). Bug reports and contributions are welcome at [the GitHub repository](https://github.com/dotnet/runtime).
<!-- The key features of this package -->
-*
-*
-*
+* In-memory configuration provider
+* Chained configuration provider for chaining multiple confiugration providers together.
+* Base types that implement configuration abstraction interfaces that can be used when implementing other configuration providers.
## How to Use
<!-- A compelling example on how to use this package with code, as well as any specific guidelines for when to use the package -->
+```C#
+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"]);
+```
## Main Types
The main types provided by this library are:
-* ``
-* ``
-* ``
+* `Microsoft.Extensions.Configuration.ConfigurationBuilder`
+* `Microsoft.Extensions.Configuration.ConfigurationManager`
+* `Microsoft.Extensions.Configuration.ConfigurationRoot`
+* `Microsoft.Extensions.Configuration.ConfigurationSection`
## Additional Documentation
## Related Packages
<!-- The related packages associated with this package -->
+* [Microsoft.Extensions.Configuration.Binder](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.Binder)
+* [Microsoft.Extensions.Configuration.CommandLine](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.CommandLine)
+* [Microsoft.Extensions.Configuration.EnvironmentVariables](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.EnvironmentVariables)
+* [Microsoft.Extensions.Configuration.FileExtensions](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.FileExtensions)
+* [Microsoft.Extensions.Configuration.Ini](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.Ini)
+* [Microsoft.Extensions.Configuration.Json](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.Json)
+* [Microsoft.Extensions.Configuration.UserSecrets](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.UserSecrets)
+* [Microsoft.Extensions.Configuration.Xml](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.Xml)
+
## Feedback & Contributing
<!-- How to provide feedback on this package and contribute to it -->
-Microsoft.Extensions.Configuration is released as open source under the [MIT license](https://licenses.nuget.org/MIT). Bug reports and contributions are welcome at [the GitHub repository](https://github.com/dotnet/runtime).
\ No newline at end of file
+Microsoft.Extensions.Configuration is released as open source under the [MIT license](https://licenses.nuget.org/MIT). Bug reports and contributions are welcome at [the GitHub repository](https://github.com/dotnet/runtime).