public IEnumerable <ICreateObjects> RetrieveFrom(IConstructorQueries constructors) { var methods = constructors.TryToObtainPublicStaticFactoryMethodWithoutRecursion(); if (!methods.Any()) { return(_next.RetrieveFrom(constructors)); } return(methods); }
public IEnumerable <ICreateObjects> RetrieveFrom(IConstructorQueries constructors) { var constructorList = constructors.TryToObtainPublicConstructorsWithRecursiveArguments(); if (constructorList.Any()) { return(constructorList.ToList()); } else { return(_next.RetrieveFrom(constructors)); } }
public IEnumerable <ICreateObjects> RetrieveFrom(IConstructorQueries constructors) { var foundConstructors = constructors.TryToObtainInternalConstructorsWithRecursiveArguments(); if (foundConstructors.Any()) { return(foundConstructors.ToArray()); } else { return(_next.RetrieveFrom(constructors)); } }
public IEnumerable <ICreateObjects> RetrieveFrom(IConstructorQueries constructors) { var internalConstructors = constructors.GetInternalConstructorsWithoutRecursiveParameters(); if (internalConstructors.Any()) { return(internalConstructors); } else { return(_next.RetrieveFrom(constructors)); } }
public IEnumerable <ICreateObjects> RetrieveFrom(IConstructorQueries constructors) { var constructor = constructors.GetNonPublicParameterlessConstructorInfo(); if (constructor.HasValue) { return(new List <ICreateObjects> { constructor.Value() }); } else { return(_next.RetrieveFrom(constructors)); } }
public IEnumerable <ICreateObjects> GetAllPublicConstructors() { return(_constructorRetrieval.RetrieveFrom(this)); }