fromPlex<T> function
T
fromPlex<
T>({ - String? tag,
- dynamic parm,
})
Implementation
T fromPlex<T>({String? tag, dynamic parm}) {
final key = '${T}${tag ?? ''}';
if (_resolutionStack.contains(key)) {
throw PlexCircularDependencyError([..._resolutionStack, key]);
}
_resolutionStack.add(key);
try {
var elements = _injectors.whereType<_PlexInjector<T>>().cast<_PlexInjector>().toList();
if (tag != null) {
elements = elements.where((element) => element.tag == tag).toList();
} else {
elements = elements.where((element) => element.tag == null).toList();
}
if (elements.isEmpty) {
throw Exception("No Dependency Provided\n\nPlease use injectSingleton(...), injectSingletonLazy(...) or injectFactory(...)\n");
}
return elements.first.getValue(parm: parm);
} finally {
_resolutionStack.remove(key);
}
}