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.

Typedefs

Configuration = IConfiguration
Alias for IConfiguration for backwards compatibility.