injectOrNull<T> method

T? injectOrNull<T>()

Resolves the dependency of type T, or returns null if not registered.

Checks overrides first, then local bindings, and cascades to parent.

Example

final analytics = container.injectOrNull<AnalyticsService>();
analytics?.logEvent('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;
}