get<T> method
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);
}
}