public CreationResult TryResolveDummyValueWithAllAvailableStrategies(Type typeOfDummy) { CreationResult creationResult = null; foreach (var strategy in this.strategies) { var thisCreationResult = strategy.TryCreateDummyValue(typeOfDummy, this); if (thisCreationResult.WasSuccessful) { this.strategyCache.TryAdd(typeOfDummy, strategy); return(thisCreationResult); } creationResult = CreationResult.MergeIntoDummyResult(creationResult, thisCreationResult); } this.strategyCache.TryAdd(typeOfDummy, new UnableToResolveStrategy(creationResult)); return(creationResult); }
private CreationResult TryResolveDummyValueWithAllAvailableStrategies( Type typeOfDummy, LoopDetectingResolutionContext resolutionContext) { CreationResult creationResult = CreationResult.Untried; foreach (var strategy in this.strategies) { var thisCreationResult = strategy.TryCreateDummyValue(typeOfDummy, this, resolutionContext); if (thisCreationResult.WasSuccessful) { this.strategyCache.TryAdd(typeOfDummy, strategy); return(thisCreationResult); } creationResult = creationResult.MergeIntoDummyResult(thisCreationResult); } this.strategyCache.TryAdd(typeOfDummy, new UnableToResolveStrategy(creationResult)); return(creationResult); }
private CreationResult TryResolveDummyValueWithAllAvailableStrategies(DummyCreationSession session, Type typeOfDummy) { if (this.strategyCache.TryGetValue(typeOfDummy, out ResolveStrategy cachedStrategy)) { return(cachedStrategy.TryCreateDummyValue(session, typeOfDummy)); } CreationResult creationResult = null; foreach (var strategy in this.strategies) { var thisCreationResult = strategy.TryCreateDummyValue(session, typeOfDummy); if (thisCreationResult.WasSuccessful) { this.strategyCache.TryAdd(typeOfDummy, strategy); return(thisCreationResult); } creationResult = CreationResult.MergeIntoDummyResult(creationResult, thisCreationResult); } this.strategyCache.TryAdd(typeOfDummy, new UnableToResolveStrategy(creationResult)); return(creationResult); }