Beispiel #1
0
        private IEnumerable <object> GetCTorParameters(RegisteredEntry obj)
        {
            var ctors = obj.ConcreteType.GetConstructors(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Static).First();

            foreach (var param in ctors.GetParameters())
            {
                yield return(ResolveObject(param.ParameterType));
            }
        }
Beispiel #2
0
        private object GetInstance(RegisteredEntry obj)
        {
            if (obj.Instance == null || obj.lifecycle == LifeCycle.Transient)
            {
                var ctorParams          = GetCTorParameters(obj);
                var sanitizedCtorParams = (ctorParams == null || ctorParams.Count() == 0) ? null : ctorParams.ToArray();
                obj.CreateInstance(sanitizedCtorParams);
            }

            return(obj.Instance);
        }