internal DiStrategy(IDiConstructorMap diConstructorMap, IDiArgumentBuilderFactory diArgumentBuilderFactory, IObjectBuilderFactory objectBuilderFactory) { IConstructionInfo constructionInfo = diConstructorMap.FindBestConstructorForDi(); IArgumentBuilder argumentBuilder = diArgumentBuilderFactory.CreateBuilderFor(constructionInfo); _objectBuilder = objectBuilderFactory.CreateBuilder(constructionInfo, argumentBuilder); }
public object RetrieveService(object[] arguments) { IConstructionInfo constructionInfo = _argumentConstructorMap.FindBestConstructorForArguments(arguments); IArgumentBuilder argumentBuilder = _userArgumentBuilderFactory.CreateBuilderFor(constructionInfo, arguments); IObjectBuilder objectBuilder = _objectBuilderFactory.CreateBuilder(constructionInfo, argumentBuilder); return(objectBuilder.BuildObject()); }