injectOrNull<T> method
T?
injectOrNull<T>()
Resolves a dependency of type T, returning null if unregistered.
Performs the same resolution chain as inject, but returns null instead
of throwing a StateError when no binding or override is found.
final analytics = container.injectOrNull<AnalyticsService>();
analytics?.trackEvent('app_start');
Implementation
T? injectOrNull<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!.injectOrNull<T>();
}
return null;
}