put<T extends Object> method
void
put<
T extends Object>( - T instance, {
- String? tag,
- bool override = false,
})
Implementation
void put<T extends Object>(T instance, {String? tag, bool override = false}) {
final key = _generateKey<T>(tag);
if (!override && _dependencies.containsKey(key)) {
if (kDebugMode) {
print(
'WARNING (BlueWhale): Dependency $key already registered. Use override:true if intentional.');
}
return;
}
if (_dependencies.containsKey(key)) {
_unregisterRouteAware(_dependencies[key]?._instance);
_dependencies[key]?.dispose();
}
// Use lazySingleton with a constant factory to allow recreation if disposed
_dependencies[key] = _DependencyInjector<T>.lazySingleton(() => instance);
// We notify initialization immediately for 'put' because the instance exists
_dependencies[key]!.instance;
if (kDebugMode) print('INFO (BlueWhale): $key registered.');
}