addOptions<TOptions> method
OptionsBuilder<TOptions>
addOptions<TOptions>(
- OptionsImplementationFactory<
TOptions> instance, { - String name = Options.defaultName,
Adds services required for using options.
Implementation
OptionsBuilder<TOptions> addOptions<TOptions>(
OptionsImplementationFactory<TOptions> instance, {
String name = Options.defaultName,
}) {
tryAdd(
ServiceDescriptor.singleton<Options<TOptions>>(
(ServiceProvider sp) => UnnamedOptionsManager<TOptions>(
sp.getRequiredService<OptionsFactory<TOptions>>(),
),
),
);
tryAdd(
ServiceDescriptor.scoped<OptionsSnapshot<TOptions>>(
(sp) => OptionsManager<TOptions>(
instance,
sp.getRequiredService<OptionsFactory<TOptions>>(),
),
),
);
tryAdd(
ServiceDescriptor.singleton<OptionsMonitor<TOptions>>(
(ServiceProvider sp) => OptionsMonitor<TOptions>(
sp.getRequiredService<OptionsFactory<TOptions>>(),
sp.getServices<OptionsChangeTokenSource<TOptions>>(),
sp.getRequiredService<OptionsMonitorCache<TOptions>>(),
),
),
);
tryAdd(
ServiceDescriptor.transient<OptionsFactory<TOptions>>(
(sp) => OptionsFactory<TOptions>(
instance,
setups: sp.getServices<ConfigureOptions<TOptions>>(),
postConfigureOptions:
sp.getServices<PostConfigureOptions<TOptions>>(),
validations: sp.getServices<ValidateOptions<TOptions>>(),
),
),
);
tryAdd(
ServiceDescriptor.singleton<OptionsMonitorCache<TOptions>>(
(sp) => OptionsCache<TOptions>(instance),
),
);
return OptionsBuilder<TOptions>(
this,
name,
);
}