getService<T> method
T?
getService<
T>()
override
Implementation
@override
T? getService<T>() {
for (var item in serviceCollection.services) {
if (item.serviceType.runtimeType == YimServiceTypeDescriptor<T>().runtimeType) {
if (item.lifetime == YimServiceLifetime.singleton) {
item.instance ??= item.builder!();
return item.instance;
} else if (item.lifetime == YimServiceLifetime.scoped) {
if (_scopedInstance[item.serviceType] == null) {
_scopedInstance[item.serviceType] = item.builder == null ? item.instance : item.builder!();
}
return _scopedInstance[item.serviceType];
} else {
return item.builder == null ? item.instance : item.builder!();
}
}
}
}