Example #1
0
 private object GetOrCreateService(Dictionary <Type, object> service, Type serviceType,
                                   RegistryService registryService, Type[] genericArgs, List <IDisposable> disposables)
 {
     if (service.TryGetValue(serviceType, out var serviceInstance))
     {
         return(serviceInstance);
     }
     serviceInstance = registryService.ServiceFac(registryService.LifeCycle, genericArgs);
     // if the service implement Idisposable , then add to _disposables list
     if (serviceInstance is IDisposable disposable)
     {
         disposables.Add(disposable);
     }
     service.Add(serviceType, serviceInstance);
     return(serviceInstance);
 }