public IEnumerable<IBuildable> GetBuildDependencies(ProjectBuildOptions buildOptions) { List<IBuildable> result = new List<IBuildable>(); foreach (IBuildable b in wrapped.GetBuildDependencies(buildOptions)) { result.Add(factory.GetWrapper(b)); } lock (cachedBuildDependencies) { if (buildOptions != null) cachedBuildDependencies[buildOptions] = result; else cachedBuildDependenciesForNullOptions = result; } return result; }