Пример #1
0
        private bool VisitLibrary(IGraphNode <LibraryDescription> node,
                                  IEnumerable <IGraphNode <LibraryDescription> > ancestors,
                                  ISet <LibraryDescription> visitedLibraries)
        {
            if (visitedLibraries.Add(node.Item))
            {
                foreach (var loadableAssembly in node.Item.Assemblies)
                {
                    AddDependencySource(_dependencyPackageSources, loadableAssembly, node.Item.Identity.Name);

                    DepthFirstGraphTraversal.PreOrderWalk(
                        root: loadableAssembly,
                        visitNode: VisitAssembly,
                        getChildren: GetAssemblyDependencies);
                }

                return(true);
            }

            return(false);
        }
Пример #2
0
        private bool VisitLibrary(IGraphNode <Library> node,
                                  IEnumerable <IGraphNode <Library> > ancestors,
                                  ISet <Library> visitedLibraries,
                                  ISet <string> assemblies)
        {
            if (visitedLibraries.Add(node.Item))
            {
                LibraryDescription desc;
                if (_libDictionary.TryGetValue(node.Item, out desc))
                {
                    foreach (var loadableAssembly in desc.LoadableAssemblies)
                    {
                        DepthFirstGraphTraversal.PreOrderWalk(
                            root: loadableAssembly,
                            visitNode: (assemblyNode, assemblyAncestors) => VisitAssembly(assemblyNode, assemblyAncestors, assemblies),
                            getChildren: GetAssemblyDependencies);
                    }
                }

                return(true);
            }

            return(false);
        }