/// <summary> /// Return new object required class /// </summary> /// <param name="abstration"></param> /// <returns></returns> public object Get(Type abstration) { ConstructorInfo constructorInfo; List <object> arguments = new List <object>(); if (!_dependencyTable.IsPresent(abstration)) { throw new Exception("Dependency not present"); } constructorInfo = _dependencyTable.GetDependency(abstration).GetConstructors().First(); foreach (ParameterInfo item in constructorInfo.GetParameters()) { arguments.Add(Get(item.ParameterType)); } return(constructorInfo.Invoke(arguments.ToArray()));; }