Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 public ResolveContext(IDependencyRegistrationCollection registrations)
 {
     Registrations = registrations;
 }
Ejemplo n.º 4
0
 public abstract bool TryResolve(IDependencyRegistrationCollection registrations, ResolveContext resolveContext, out object instance);
Ejemplo n.º 5
0
 Func <T> ResolveTyped(IDependencyRegistrationCollection registrations, ResolveContext resolveContext) =>
 () => _innerProfile(registrations, resolveContext, out var instance)
 ? (T)instance
 : throw new DependencyResolutionException($"Could not resolve type {typeof(T)}");
Ejemplo n.º 6
0
 public override bool TryResolve(IDependencyRegistrationCollection registrations, ResolveContext resolveContext, out object instance)
 {
     instance = ResolveTyped(registrations, resolveContext);
     return(true);
 }