private Registration?TryGetDependency(Type type) { lock (SyncRoot) { if (RegistrationStore.Registrations.TryGetValue(type, out Registration parent)) { return(parent); } foreach (IDependencyResolver dependencyResolver in _resolvers) { ServiceBinding[] serviceBindings = dependencyResolver.Resolve(this, type).ToArray(); if (serviceBindings.Length > 0) { foreach (ServiceBinding binding in serviceBindings) { RegistrationStore.AddBinding(binding); } return(TryGetDependency(type)); } } return(_parentPipeline?.TryGetDependency(type)); } }
private Registration?TryGetDependency(Type type) { lock (SyncRoot) { if (RegistrationStore.Registrations.TryGetValue(type, out Registration parent)) { return(parent); } foreach (IServiceBindingGenerator dependencyResolver in _resolvers) { if (Settings.ResolverExclusions.TryGetValue(dependencyResolver.GetType(), out var exclusions)) { if (exclusions.Any(x => x.Match(type))) { continue; } } ServiceBinding[] serviceBindings = dependencyResolver.Resolve(this, type).ToArray(); if (serviceBindings.Length > 0) { foreach (ServiceBinding binding in serviceBindings) { RegistrationStore.AddBinding(binding); } return(TryGetDependency(type)); } } return(_parentPipeline?.TryGetDependency(type)); } }