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;
}