Exemplo n.º 1
0
            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);
            }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }