configuration library
Contains classes for reading application configuration from various sources.
This library provides a flexible configuration system inspired by Microsoft.Extensions.Configuration, allowing applications to read settings from multiple sources with a unified API.
Configuration is performed using one or more configuration providers that read configuration data from key-value pairs using various sources including:
- JSON files
- XML files
- INI files
- Command-line arguments
- In-memory collections
- Environment variables (via configuration_io.dart)
Basic Usage
Build a configuration from multiple sources:
final config = ConfigurationBuilder()
..addInMemoryCollection({
'Logging:LogLevel:Default': 'Information',
'AllowedHosts': '*',
})
..addJsonFile('appsettings.json', optional: true)
..addCommandLine(args)
.build();
// Read values
final logLevel = config['Logging:LogLevel:Default'];
final hosts = config['AllowedHosts'];
Configuration Sections
Access nested configuration as typed sections:
final loggingSection = config.getSection('Logging');
final logLevel = loggingSection['LogLevel:Default'];
// Bind to objects
final myOptions = loggingSection.get<LoggingOptions>();
Configuration Reloading
Monitor configuration changes with change tokens:
ChangeToken.onChangeTyped<IConfiguration>(
() => config.getReloadToken(),
(config) {
print('Configuration reloaded!');
// React to configuration changes
},
);
Classes
- ChainedConfigurationProvider
- Chained implementation of ConfigurationProvider.
- ChainedConfigurationSource
- Represents a chained Configuration as a ConfigurationSource.
- CommandLineConfigurationProvider
- A command line based ConfigurationProvider.
- CommandLineConfigurationSource
- Represents command line arguments as an ConfigurationSource.
- ConfigurationBuilder
- Used to build key/value based configuration settings for use in an application.
- ConfigurationBuilderProperties
- ConfigurationManager
- ConfigurationManager is a mutable configuration object. It is both an ConfigurationBuilder and an ConfigurationRoot. As sources are added, it updates its current view of configuration.
- ConfigurationPath
- Utility methods and constants for manipulating Configuration paths
- ConfigurationProvider
- Provides configuration key/values for an application.
- ConfigurationReloadToken
- Implements IChangeToken.
- ConfigurationRoot
- Represents the root of an Configuration hierarchy.
- ConfigurationSection
- Represents a section of application configuration values.
- ConfigurationSource
- Represents a source of configuration key/values for an application.
- ConfigurationSources
- IConfiguration
- Represents a set of key/value application configuration properties.
- IConfigurationSection
- Represents a section of application configuration values.
- IniConfigurationParser
- Parses INI configuration data into key-value pairs.
- IniConfigurationProvider
- An INI based ConfigurationProvider.
- IniConfigurationSource
- Represents an INI configuration string as a ConfigurationSource.
- IniStreamConfigurationProvider
- INI configuration provider that reads from a stream.
- IniStreamConfigurationSource
- Represents an INI stream as a ConfigurationSource.
- JsonConfigurationParser
- JsonConfigurationProvider
- A JSON based ConfigurationProvider.
- JsonConfigurationSource
- MemoryConfigurationProvider
- In-memory implementation of ConfigurationProvider
- MemoryConfigurationSource
- Represents in-memory data as an ConfigurationSource.
- StreamConfigurationProvider
- Stream based configuration provider
- StreamConfigurationSource
- Stream based ConfigurationSource.
- XmlConfigurationParser
- Parses XML configuration data into key-value pairs.
- XmlConfigurationProvider
- An XML based ConfigurationProvider.
- XmlConfigurationSource
- Represents an XML configuration string as a ConfigurationSource.
- XmlStreamConfigurationProvider
- XML configuration provider that reads from a stream.
- XmlStreamConfigurationSource
- Represents an XML stream as a ConfigurationSource.
Mixins
- ConfigurationProviderMixin
- Provides configuration key/values for an application.
Extensions
- ChainedBuilderExtensions on ConfigurationBuilder
- Extension methods for adding Configuration to a ConfigurationBuilder.
- CommandLineConfigurationExtensions on ConfigurationBuilder
- Extension methods for registering CommandLineConfigurationProvider with ConfigurationBuilder.
- ConfigurationExtensions on Configuration
- Extension methods for configuration classes.
- ConfigurationRootExtensions on ConfigurationRoot
- Extension methods for ConfigurationRoot.
- ConfigurationSectionExtensions on ConfigurationSection
- Extension methods for configuration section classes.
- IniConfigurationExtensions on ConfigurationBuilder
- Extension methods for adding INI configuration sources.
- InternalConfigurationRootExtensions on ConfigurationRoot
- Extensions method for ConfigurationRoot.
- JsonConfigurationExtensions on ConfigurationBuilder
- Extension methods for adding JsonConfigurationProvider.
- MemoryConfigurationBuilderExtensions on ConfigurationBuilder
- ConfigurationBuilder extension methods for the MemoryConfigurationProvider.
- XmlConfigurationExtensions on ConfigurationBuilder
- Extension methods for adding XML configuration sources.
Functions
-
configurationKeyComparator(
String? x, String? y) → int
Typedefs
- Configuration = IConfiguration
- Alias for IConfiguration for backwards compatibility.