Beispiel #1
0
        private object GetInstance(RegisteredImplementation registeredImplementation)
        {
            object instance;

            if (registeredImplementation.isSinglton == false || registeredImplementation.SingletonInstance == null)
            {
                var parameters = ResolveConstructorParameters(registeredImplementation);
                instance = registeredImplementation.CreateInstance(parameters.ToArray());
            }
            else
            {
                instance = registeredImplementation.SingletonInstance;
            }

            return(instance);
        }
Beispiel #2
0
        private IEnumerable <object> ResolveConstructorParameters(RegisteredImplementation registeredImplementation)
        {
            var constructorInfo = registeredImplementation.ImplementationType.GetConstructors().First();

            return(constructorInfo.GetParameters().Select(parameter => ResolveObject(parameter.ParameterType)));
        }