get<T> method

  1. @override
T get<T>({
  1. ParamTransform? transform,
  2. String? key,
})
inherited

Request an instance by Type
transform : Transform a param. This can be used for example to replace an instance with a mock in tests.
When key is provided it will search the instance that have the same key

Implementation

@override
T get<T>({ParamTransform? transform, String? key}) {
  _checkAutoInjectorIsCommitted();

  try {
    final className = T.toString();
    T? instance;

    if (key == null) {
      instance = _resolveInstanceByClassName(className, transform);
      if (instance == null) {
        throw UnregisteredInstance([className], '$className unregistered.');
      }
    } else {
      instance = _resolveInstanceByKey(key, transform);
      if (instance == null) {
        throw UnregisteredInstanceByKey([key], '$key unregistered.');
      }
    }
    return instance;
  } on UnregisteredInstance catch (exception) {
    final trace = exception.classNames.join('->');
    var message = exception.message;
    if (exception.classNames.length > 1) {
      message = '$message\nTrace: $trace';
    }
    throw UnregisteredInstance(exception.classNames, message);
  } on UnregisteredInstanceByKey catch (exception) {
    final trace = exception.keys.join('->');
    var message = exception.message;
    if (exception.keys.length > 1) {
      message = '$message\nTrace: $trace';
    }
    throw UnregisteredInstance(exception.keys, message);
  }
}