addDispose<T> method

void addDispose<T>(
  1. void disposeFunc(
    1. T
    )
)

Defines dispose strategy for type T. (It calls for every resolved dependency of type T when container's dispose was invoked

Implementation

void addDispose<T>(void Function(T) disposeFunc) {
  if (_typesToDispose.containsKey(T)) {
    throw StateError('Dispose for dependency of type `$T` '
                     'is already defined in the container');
  }

  // To satisfy strict compiler we need to cast Function(T) to Function(Object)
  _typesToDispose[T] = (Object o) => disposeFunc(o as T);
}