ConfigurationServiceCollectionExtensions extension

Extension methods that register davianspace_configuration types into ServiceCollection.

After calling addConfiguration or addConfigurationBuilder, Configuration (and ConfigurationRoot when applicable) become injectable singletons throughout the DI container.

Typical setup

final config = ConfigurationBuilder()
    .addJsonFile('appsettings.json')
    .addEnvironmentVariables()
    .build();

final provider = ServiceCollection()
  ..addConfiguration(config)
  // Bind options directly from the config at registration time:
  ..configure<DatabaseOptions>(
    factory: DatabaseOptions.new,
    configure: (opts) {
      final s = config.getSection('Database');
      opts.host = s['Host'] ?? 'localhost';
      opts.port = int.parse(s['Port'] ?? '5432');
    },
  )
  .buildServiceProvider();

// Inject Configuration anywhere:
class MyService {
  MyService(this._config);
  final Configuration _config;
}
on

Methods

addConfiguration(Configuration configuration) ServiceCollection

Available on ServiceCollection, provided by the ConfigurationServiceCollectionExtensions extension

Registers configuration as a singleton Configuration.
addConfigurationBuilder(Configuration build(ConfigurationBuilder builder)) ServiceCollection

Available on ServiceCollection, provided by the ConfigurationServiceCollectionExtensions extension

Registers a Configuration singleton produced by build.