public override bool TryResolve(IDependencyRegistrationCollection registrations, ResolveContext resolveContext, out object instance) { var serviceTypeRegistrations = registrations[typeof(T)].ToArray(); instance = null; var instances = new T[serviceTypeRegistrations.Length]; for (var i = 0; i < serviceTypeRegistrations.Length; i++) { var profile = ResolveProfiles.Find(resolveContext, serviceTypeRegistrations[i]); if (!profile(registrations, resolveContext, out instance)) { throw new DependencyResolutionException($"Could not resolve an enumerable for {serviceTypeRegistrations[i].ConcreteType}"); } instances[i] = (T)instance; } instance = instances; return(true); }
public override bool TryResolve(IDependencyRegistrationCollection registrations, ResolveContext resolveContext, out object instance) { var serviceTypeRegistrations = registrations[typeof(T)].ToArray(); instance = null; var instances = new T[serviceTypeRegistrations.Length]; for (var i = 0; i < serviceTypeRegistrations.Length; i++) { var profile = ResolveProfiles.Find(resolveContext, serviceTypeRegistrations[i]); if (!profile(registrations, resolveContext, out instance)) { return(false); } instances[i] = (T)instance; } instance = instances; return(true); }
public ResolveContext(IDependencyRegistrationCollection registrations) { Registrations = registrations; }
public abstract bool TryResolve(IDependencyRegistrationCollection registrations, ResolveContext resolveContext, out object instance);
Func <T> ResolveTyped(IDependencyRegistrationCollection registrations, ResolveContext resolveContext) => () => _innerProfile(registrations, resolveContext, out var instance) ? (T)instance : throw new DependencyResolutionException($"Could not resolve type {typeof(T)}");
public override bool TryResolve(IDependencyRegistrationCollection registrations, ResolveContext resolveContext, out object instance) { instance = ResolveTyped(registrations, resolveContext); return(true); }