Esempio n. 1
0
        private IEnumerable <object> ResolveConstructorParams(RegisteredObject registeredObject)
        {
            // Try to get the greediest constructor
            var constructorInfo = registeredObject.ConcreteType.GetConstructors().OrderByDescending(c => c.GetParameters().Length).FirstOrDefault();

            if (constructorInfo == null)
            {
                yield return(new List <object>());
            }

            foreach (var parameter in constructorInfo.GetParameters())
            {
                yield return(ResolveObject(parameter.ParameterType));
            }
        }
Esempio n. 2
0
        private object GetInstance(RegisteredObject registeredObject)
        {
            var parameters = ResolveConstructorParams(registeredObject);

            return(registeredObject.GetInstance(parameters.ToArray()));
        }