public IPipelineGraph For(string profileName, object syncLock) { if (!_profiles.ContainsKey(profileName)) { lock (syncLock) { if (!_profiles.ContainsKey(profileName)) { var profileGraph = _pluginGraph.Profile(profileName); var instances = new ComplexInstanceGraph(_root, profileGraph, ContainerRole.ProfileOrChild); var pipeline = new PipelineGraph(profileGraph, instances, _root, _root.Singletons, _root.Transients); Container.CorrectSingletonLifecycleForChild(pipeline); _profiles[profileName] = pipeline; } } } return(_profiles[profileName]); }