Beispiel #1
0
        private object GetInstance(RegisteredObject registeredObject)
        {
            if (registeredObject.Instance == null)
            {
                var parameters = ResolveConstructorParameters(registeredObject);
                registeredObject.CreateInstance(parameters.ToArray());

                var propertiesToSet = registeredObject.ConcreteType
                                      .GetProperties()
                                      .Where(x => x.CanWrite && _registeredObjects.Any(y => y.TypeToResolve == x.PropertyType));

                foreach (var property in propertiesToSet)
                {
                    property.SetValue(registeredObject.Instance, ResolveObject(property.PropertyType));
                }
            }
            return(registeredObject.Instance);
        }