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;
}
Methods
-
addConfiguration(
Configuration configuration) → ServiceCollection -
Available on ServiceCollection, provided by the ConfigurationServiceCollectionExtensions extension
Registersconfigurationas a singletonConfiguration. -
addConfigurationBuilder(
Configuration build(ConfigurationBuilder builder)) → ServiceCollection -
Available on ServiceCollection, provided by the ConfigurationServiceCollectionExtensions extension
Registers aConfigurationsingleton produced bybuild.