ServiceProviderManager constructor

ServiceProviderManager(
  1. ContainerInterface container
)

Implementation

ServiceProviderManager(ContainerInterface container) {
  _registry = ServiceProviderRegistry(container);
  _bootloader = ServiceProviderBootloader(container);
  _validator = ServiceProviderValidator();

  container.setMissingBindingHandler((type) {
    final provider = _registry.loadDeferredProvider(type);
    if (provider != null) {
      // We can't await here because resolution is synchronous.
      // We fire and forget the boot process.
      // Ideally, boot should be fast or not required for immediate usage.
      _bootloader.bootProvider(provider);
    }
  });
}