From fc177587f34f90ae3285a5ea757a81a317b41769 Mon Sep 17 00:00:00 2001 From: Travis Illig Date: Thu, 16 Aug 2018 08:25:21 -0700 Subject: [PATCH] Memory optimization from #919: Autofac.Core.Resolving.CircularDependencyDetector. --- src/Autofac/Core/Resolving/CircularDependencyDetector.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Autofac/Core/Resolving/CircularDependencyDetector.cs b/src/Autofac/Core/Resolving/CircularDependencyDetector.cs index 4d25468c9..71d0c5d10 100644 --- a/src/Autofac/Core/Resolving/CircularDependencyDetector.cs +++ b/src/Autofac/Core/Resolving/CircularDependencyDetector.cs @@ -63,8 +63,13 @@ public static void CheckForCircularDependency(IComponentRegistration registratio throw new DependencyResolutionException(string.Format(CultureInfo.CurrentCulture, CircularDependencyDetectorResources.MaxDepthExceeded, registration)); // Checks for circular dependency - if (activationStack.Any(a => a.ComponentRegistration == registration)) - throw new DependencyResolutionException(string.Format(CultureInfo.CurrentCulture, CircularDependencyDetectorResources.CircularDependency, CreateDependencyGraphTo(registration, activationStack))); + foreach (var a in activationStack) + { + if (a.ComponentRegistration == registration) + { + throw new DependencyResolutionException(string.Format(CultureInfo.CurrentCulture, CircularDependencyDetectorResources.CircularDependency, CreateDependencyGraphTo(registration, activationStack))); + } + } } } }