getService<T> method

  1. @override
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.lifetime == YimServiceLifetime.scoped) {
        item.instance ??= item.builder!();
        return item.instance;
      } else {
        return item.builder == null ? item.instance : item.builder!();
      }
    }
  }
}