inject<T> method
T
inject<T>()
Resolves a dependency of type T.
Lookups proceed in the following order:
- Local overrides registered via override or overrideType.
- Local bindings registered via provide, provideSingleton, or provideValue.
- Recursive lookup in parent, if present.
Throws a StateError if no provider is registered for T in this container or its ancestors.
final client = container.inject<BloomHttpClient>();
Implementation
T inject<T>() {
if (_overrides.containsKey(T)) {
return _overrides[T] as T;
}
final binding = _bindings[T];
if (binding != null) {
return binding.resolve() as T;
}
if (parent != null) {
return parent!.inject<T>();
}
throw StateError(
'BloomContainer: No provider registered for type "$T". '
'Ensure you called `provide<$T>()` or `provideSingleton<$T>()` before resolving.',
);
}